tfabrica
Version:
library for TFabrica - TechSol
77 lines (60 loc) • 2.63 kB
text/typescript
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';
()
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'));
}
}