assets/angular/shared/base-service.ts
Base class for all client-side services...
Author: Shilo Banihit
Properties |
|
Methods |
|
Accessors |
constructor(http: any, configService: any)
|
Defined in assets/angular/shared/base-service.ts:41
|
Protected emitInit |
emitInit()
|
Defined in assets/angular/shared/base-service.ts:70
|
Returns :
void
|
Protected extractData |
extractData(res: Response, parentField: any)
|
Defined in assets/angular/shared/base-service.ts:80
|
Returns :
any
|
getConfig |
getConfig()
|
Defined in assets/angular/shared/base-service.ts:76
|
Returns :
any
|
Protected getOptions | ||||||||
getOptions(headersObj: any)
|
||||||||
Defined in assets/angular/shared/base-service.ts:89
|
||||||||
Parameters :
Returns :
any
|
Protected getOptionsClient | ||||||||
getOptionsClient(headersObj: any)
|
||||||||
Defined in assets/angular/shared/base-service.ts:94
|
||||||||
Parameters :
Returns :
any
|
Public waitForInit | ||||||||
waitForInit(handler: any)
|
||||||||
Defined in assets/angular/shared/base-service.ts:64
|
||||||||
Parameters :
Returns :
any
|
Protected __config |
__config:
|
Type : any
|
Defined in assets/angular/shared/base-service.ts:40
|
Protected baseUrl |
baseUrl:
|
Type : string
|
Defined in assets/angular/shared/base-service.ts:37
|
Protected brandingAndPortalUrl |
brandingAndPortalUrl:
|
Type : string
|
Defined in assets/angular/shared/base-service.ts:38
|
Protected config |
config:
|
Type : any
|
Defined in assets/angular/shared/base-service.ts:35
|
Protected configService |
configService:
|
Type : any
|
Defined in assets/angular/shared/base-service.ts:36
|
Protected http |
http:
|
Type : any
|
Defined in assets/angular/shared/base-service.ts:34
|
Protected initSubject |
initSubject:
|
Type : any
|
Defined in assets/angular/shared/base-service.ts:41
|
Protected options |
options:
|
Type : any
|
Defined in assets/angular/shared/base-service.ts:39
|
getBrandingAndPortalUrl |
getgetBrandingAndPortalUrl()
|
Defined in assets/angular/shared/base-service.ts:56
|
getBaseUrl |
getgetBaseUrl()
|
Defined in assets/angular/shared/base-service.ts:60
|
import { Http, Response, RequestOptions, Headers } from '@angular/http';
import { Observable } from 'rxjs/Observable';
import 'rxjs/add/observable/interval';
import 'rxjs/add/observable/of';
import 'rxjs/add/operator/mergeMap';
import * as _ from "lodash-lib";
import { Subject } from 'rxjs/Subject';
/**
* Base class for all client-side services...
*
* Author: <a href='https://github.com/shilob' target='_blank'>Shilo Banihit</a>
*
*/
export class BaseService {
protected http: any;
protected config: any;
protected configService: any;
protected baseUrl:string;
protected brandingAndPortalUrl:string;
protected options: any;
protected static __config: any;
protected initSubject: any;
constructor (http: any , configService: any) {
this.http = http;
this.configService = configService;
this.initSubject = new Subject();
this.configService.getConfig((config:any) => {
this.config = config;
this.baseUrl = this.config.baseUrl;
this.brandingAndPortalUrl = `${this.baseUrl}/${this.config.branding}/${this.config.portal}`;
this.options = this.getOptionsClient();
this.emitInit();
});
}
public get getBrandingAndPortalUrl() {
return this.brandingAndPortalUrl;
}
public get getBaseUrl() {
return this.baseUrl;
}
public waitForInit(handler: any) {
const subs = this.initSubject.subscribe(handler);
this.emitInit();
return subs;
}
protected emitInit() {
if (this.config) {
this.initSubject.next('');
}
}
getConfig() {
return this.config;
}
protected extractData(res: Response, parentField: any = null) {
let body = res.json();
if (parentField) {
return body[parentField] || {};
} else {
return body || {};
}
}
protected getOptions(headersObj: any) {
let headers = new Headers(headersObj);
return new RequestOptions({ headers: headers });
}
protected getOptionsClient(headersObj: any = {}) {
headersObj['X-Source'] = 'jsclient';
headersObj['Content-Type'] = 'application/json;charset=utf-8';
return this.getOptions(headersObj);
}
}