UNPKG

tfabrica

Version:

library for TFabrica - TechSol

77 lines (60 loc) 2.63 kB
import { Injectable } from '@angular/core'; import { Http, Headers, Response, RequestOptions } from "@angular/http"; import 'rxjs/Rx'; import { Observable } from "rxjs"; import { TfabricaCrudReport } from './tfabrica.crud.report.model'; import { TfabricaSharedService } from '../main/tfabrica.shared.service'; @Injectable() export class TfabricaCrudService { constructor( private _http: Http, private _shared: TfabricaSharedService ) { } public initFromReport(report: TfabricaCrudReport) { this.setFields(report.fields); this.setFieldsToDisplay(report.fieldsToDisplay); } public readData(report: TfabricaCrudReport): Observable<TfabricaCrudReport> { let urlToCall = "/api/Report/ReadData"; console.log("Start call service: " + urlToCall); let bodyString = JSON.stringify(report); let headers = new Headers({ 'Content-Type': 'application/json' }); // ... Set content type to JSON let options = new RequestOptions({ headers: headers }); // Create a request option return this._http.post(urlToCall, bodyString, options) // ...using post request .map((res) => this.extractReadData(res)) // ...and calling .json() on the response to return data .catch((err) => this.handleError(err)); //...errors if any } private extractReadData(res: Response) { console.log(res); if (res.status < 200 || res.status >= 300) { throw new Error('Bad response status: ' + res.status); } let reportData = new TfabricaCrudReport(); reportData.setFromJson(res.json().report); return reportData; } private handleError(error: any) { console.error(error); // log to console instead let errMsg = error.message || 'Server error'; console.error(errMsg); // log to console instead return Observable.throw(errMsg); } private setFieldsToDisplay(fields) { localStorage.setItem('fieldsToDisplay', JSON.stringify(fields)); } public getFieldsToDisplay() { return JSON.parse(localStorage.getItem('fieldsToDisplay')); } public setFields(fields) { localStorage.setItem('fields', JSON.stringify(fields)); } public getFields() { return JSON.parse(localStorage.getItem('fields')); } public setFilters(filters) { localStorage.setItem('filters', JSON.stringify(filters)); } public getFilters() { return JSON.parse(localStorage.getItem('filters')); } }