private doSaveItems()

in lib/api/repository/repository.ts [142:165]


	private doSaveItems(itemsData:Array<any>, method:"PUT" | "POST", options?:HttpOptions):Observable<Array<TEntity>>{
		const saveHttpOptions:HttpOptions = this.entity.parseSaveItemsQuery
			? this.entity.parseSaveItemsQuery(itemsData, options, this.entity, this.paris.config)
			: Object.assign({}, options, {data: {items: itemsData}});

		const endpointName:string = this.getEndpointName(options && options.params ? { where: options.params } : null);
		let currentOptions = this.addCustomHeaders(itemsData);

		return this.paris.dataStore.save(`${endpointName}/`, method, Object.assign({}, saveHttpOptions, currentOptions), this.getBaseUrl(options && {where: options.params}))
			.pipe(
				catchError((err: AjaxError) => {
					this.emitEntityHttpErrorEvent(err);
					throw err
				}),
				mergeMap((savedItemsData?: Array<any> | {items:Array<any>}) => {
					if (!savedItemsData)
						return of([]);

					let itemsData:Array<any> = savedItemsData instanceof Array ? savedItemsData : savedItemsData.items;
					let itemCreators:Array<Observable<TEntity>> = itemsData.map(savedItemData => this.createItem(savedItemData));
					return combineLatest(itemCreators);
				})
			)
	}