import { LocalStorageService } from 'angular-2-local-storage'; import { Injectable } from '@angular/core'; import { BaseRequestOptions, RequestOptions, Request, XHRBackend, XHRConnection} from '@angular/http'; // TODO: Chnage this to use Covalent Http helper service // https://www.npmjs.com/package/@covalent/http @Injectable() export class DefaultRequestOptions extends BaseRequestOptions { constructor(private store: LocalStorageService) { super(); // Set the default 'Content-Type' header this.headers.set('Content-Type', 'application/json'); let token = this.store.get('token'); if (token) { this.headers.set('X-SECURIS-TOKEN', token); } } } @Injectable() export class ApiXHRBackend extends XHRBackend { createConnection(request: Request): XHRConnection { if (request.url.startsWith('/')){ // request.url = '/securis' + request.url; // prefix base url } return super.createConnection(request); } } export const requestOptionsProvider = { provide: RequestOptions, useClass: DefaultRequestOptions }; export const requestBackendProvider = { provide: XHRBackend, useClass: ApiXHRBackend };