import { HttpClient, HttpHeaders } from '@angular/common/http'; import { Injectable } from '@angular/core'; import { Observable } from 'rxjs/internal/Observable'; import { catchError } from 'rxjs/operators'; import { ErrorLoggerService } from '../core/error-logger.service'; import { SectionPrinter } from '../core/section-printer'; const httpOptions = { headers: new HttpHeaders({ 'Content-Type': 'application/json' }), }; const url = '/api/section-printers'; const serviceName = 'SectionPrinterService'; @Injectable({ providedIn: 'root', }) export class SectionPrinterService { constructor(private http: HttpClient, private log: ErrorLoggerService) {} get(id: string | null): Observable { const getUrl: string = id === null ? `${url}` : `${url}/${id}`; return >( this.http .get(getUrl) .pipe(catchError(this.log.handleError(serviceName, `get id=${id}`))) ); } // item(id: string, menuCategoryId: string): Observable { // const options = {params: new HttpParams().set('m', menuCategoryId)}; // return >this.http.get(`${url}/${id}`, options) // .pipe( // catchError(this.log.handleError(serviceName, 'list')) // ); // } save(sectionId: string, list: SectionPrinter[]): Observable { return >( this.http .post(`${url}/${sectionId}`, list, httpOptions) .pipe(catchError(this.log.handleError(serviceName, 'save'))) ); } delete(id: string): Observable { return >( this.http .delete(`${url}/${id}`, httpOptions) .pipe(catchError(this.log.handleError(serviceName, 'delete'))) ); } }