import { Injectable } from '@angular/core'; import { catchError } from 'rxjs/operators'; import { Observable } from 'rxjs/internal/Observable'; import { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http'; import { RawMaterialCost } from './raw-material-cost'; import { ErrorLoggerService } from '../core/error-logger.service'; const httpOptions = { headers: new HttpHeaders({ 'Content-Type': 'application/json' }), }; const url = '/api/raw-material-cost'; const serviceName = 'RawMaterialCostService'; @Injectable({ providedIn: 'root', }) export class RawMaterialCostService { constructor(private http: HttpClient, private log: ErrorLoggerService) {} list(id: string, startDate: string, finishDate): Observable { const options = { params: new HttpParams() }; if (startDate !== null) { options.params = options.params.set('s', startDate); } if (finishDate !== null) { options.params = options.params.set('f', finishDate); } const listUrl = id === null ? (startDate || finishDate ? `${url}/data` : url) : `${url}/${id}`; return >( this.http .get(listUrl, options) .pipe(catchError(this.log.handleError(serviceName, 'list'))) ); } }