///
import {Injectable} from "@angular/core";
import {Http, Headers, RequestOptions} from "@angular/http";
import {Message} from "../../../../common/entities/Message";
import "rxjs/Rx";
@Injectable()
export class NetworkService {
_baseUrl = "/api";
constructor(protected _http:Http) {
}
private callJson(method:string, url:string, data:any = {}):Promise {
let body = JSON.stringify(data);
let headers = new Headers({'Content-Type': 'application/json'});
let options = new RequestOptions({headers: headers});
if (method == "get" || method == "delete") {
return this._http[method](this._baseUrl + url, options)
.toPromise()
.then(res => > res.json())
.catch(NetworkService.handleError);
}
return this._http[method](this._baseUrl + url, body, options)
.toPromise()
.then(res => > res.json())
.catch(NetworkService.handleError);
}
public postJson(url:string, data:any = {}):Promise {
return this.callJson("post", url, data);
}
public putJson(url:string, data:any = {}):Promise {
return this.callJson("put", url, data);
}
public getJson(url:string):Promise {
return this.callJson("get", url);
}
public deleteJson(url:string):Promise {
return this.callJson("delete", url);
}
private static handleError(error:any) {
// TODO: in a real world app, we may send the error to some remote logging infrastructure
// instead of just logging it to the console
console.error(error);
return Promise.reject(error.message || error.json().error || 'Server error');
}
}