import { Injectable } from '@angular/core';
import { Observable } from 'rxjs/Observable';
import {
Headers,
Http,
Response,
RequestOptions,
Request,
BaseRequestOptions,
RequestMethod,
RequestOptionsArgs,
} from '@angular/http';
@Injectable()
export class Phttp {
private token: string;
constructor(private http: Http) {
}
get(url: string, options?: RequestOptionsArgs): Observable<Response> {
options = this._myDefaultOptions(options);
return this.http.get(url, options)
}
private _header(OrgHeaders) {
if ((!this.token) ) {
this.token = getMyTokenFromSomewhere();
}
if (!this.token) {
throw Error('no token found for pHttp')
}
return new Headers({
authorization: this.token,
...OrgHeaders
})
}
private _myDefaultOptions(options?: RequestOptionsArgs) {
if (!options) {
options = new RequestOptions();
}
options.headers = this._header(options.headers)
return options;
}
post(url: string, body: any, options?: RequestOptionsArgs): Observable<Response> {
options = this._myDefaultOptions(options);
return this.http.post(url, body, options)
}
put(url: string, body: any, options?: RequestOptionsArgs): Observable<Response> {
options = this._myDefaultOptions(options);
return this.http.put(url, body , options)
}
delete(url: string, options?: RequestOptionsArgs): Observable<Response> {
options = this._myDefaultOptions(options);
return this.http.delete(url, options)
}
}