import { Injectable } from '@angular/core'; import { HttpClient } from '@angular/common/http'; import { Observable, of } from 'rxjs'; import { ComponentOptionsClass } from '../model/componets'; import { Report } from '../model/reports'; import { map, catchError } from 'rxjs/operators'; @Injectable({ providedIn: 'root', }) export class DataSourceService { constructor( private http: HttpClient, ) { } getAllComponents(): Observable { return this.http.get('/component'); } addComponent(component: ComponentOptionsClass): Observable { return this.http.post('/component/', component); } updateOneComponent(component: ComponentOptionsClass): Observable { return this.http.put('/component/' + component.id, component); } deleteOneComponentById(componentId: string): Observable { return this.http.delete('/component/' + componentId); } getActionConfig(): Observable { return this.http.get('/component/displaylayout'); } getAllReports(): Observable { return this.http.get('/report'); } getReportDetailsOf(filename: string): Observable { return this.http.get('/report/' + filename); } getAllFiles(): Observable { return this.http.get('/file/list'); } postFile(fileToUpload: File): Observable { const endpoint = 'http://localhost:3000/file'; const formData: FormData = new FormData(); formData.append('file', fileToUpload, fileToUpload.name); return this.http .post(endpoint, formData) .pipe( map(() => true), catchError(e => this.handleError(e)), ); } handleError(e: any) { return of(e); } }