Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import {Injectable} from '@angular/core';
- import { Http, Response, Headers } from '@angular/http';
- import { environment } from '../../../../environments/environment';
- import { Adal4Service, Adal4HTTPService } from 'adal-angular4';
- import { NgProgressService } from 'ngx-progressbar';
- import { Observable } from 'rxjs/Observable';
- import 'rxjs/add/operator/map';
- import 'rxjs/add/operator/catch';
- import { GlobalService } from '../global/global.service';
- @Injectable()
- export class RestService {
- private headers: Headers;
- private activeCalls: number;
- constructor(private http: Http, private service: Adal4Service, private httpAdal: Adal4HTTPService, private globalService: GlobalService, private progressService: NgProgressService){
- this.activeCalls = 0;
- }
- public get(url: string, loadingBar: boolean = false): any{
- this.appendHeaders();
- return loadingBar ? this.getRequestWithLoadingBar(url) : this.getRequest(url);
- }
- private getRequest(url: string): any {
- return this.http.get(environment.webApiUrl + url, {
- headers: this.headers
- }).map(this.extractData)
- .catch(err => {
- return Observable.throw(err)
- });
- }
- private getRequestWithLoadingBar(url: string): any {
- this.httpCallRequested();
- return this.getRequest(url)
- .finally(
- () => {
- this.httpCallReady();
- }
- );
- }
- private appendHeaders(){
- this.headers = new Headers();
- this.headers.append('Authorization', `Bearer ${this.service.userInfo.token}`);
- if(this.globalService.getDomain())this.headers.append('DomainId', this.globalService.getDomain().domainId);
- if(this.globalService.getModule())this.headers.append('ModuleId', this.globalService.getModule().moduleId);
- }
- public getText(url: string) : Observable<string> {
- return this.http.get(environment.webApiUrl + url, {
- headers: this.headers
- }).map((response: Response) => response.text());
- }
- private extractData(res: Response) {
- return res.json() || [];
- }
- private httpCallReady(): void {
- this.activeCalls--;
- if (this.activeCalls === 0) {
- this.progressService.done();
- }
- }
- private httpCallRequested(): void {
- if (this.activeCalls === 0) {
- this.progressService.start();
- }
- this.activeCalls++;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement