Advertisement
Guest User

Untitled

a guest
Nov 22nd, 2017
140
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.46 KB | None | 0 0
  1. import {Injectable} from '@angular/core';
  2.  
  3. import { Http, Response, Headers } from '@angular/http';
  4. import { environment } from '../../../../environments/environment';
  5.  
  6. import { Adal4Service, Adal4HTTPService } from 'adal-angular4';
  7. import { NgProgressService } from 'ngx-progressbar';
  8.  
  9. import { Observable } from 'rxjs/Observable';
  10. import 'rxjs/add/operator/map';
  11. import 'rxjs/add/operator/catch';
  12.  
  13. import { GlobalService } from '../global/global.service';
  14.  
  15. @Injectable()
  16. export class RestService {
  17.  
  18. private headers: Headers;
  19. private activeCalls: number;
  20.  
  21. constructor(private http: Http, private service: Adal4Service, private httpAdal: Adal4HTTPService, private globalService: GlobalService, private progressService: NgProgressService){
  22. this.activeCalls = 0;
  23. }
  24.  
  25. public get(url: string, loadingBar: boolean = false): any{
  26. this.appendHeaders();
  27. return loadingBar ? this.getRequestWithLoadingBar(url) : this.getRequest(url);
  28. }
  29.  
  30. private getRequest(url: string): any {
  31. return this.http.get(environment.webApiUrl + url, {
  32. headers: this.headers
  33. }).map(this.extractData)
  34. .catch(err => {
  35. return Observable.throw(err)
  36. });
  37. }
  38.  
  39. private getRequestWithLoadingBar(url: string): any {
  40. this.httpCallRequested();
  41. return this.getRequest(url)
  42. .finally(
  43. () => {
  44. this.httpCallReady();
  45. }
  46. );
  47. }
  48.  
  49. private appendHeaders(){
  50. this.headers = new Headers();
  51. this.headers.append('Authorization', `Bearer ${this.service.userInfo.token}`);
  52. if(this.globalService.getDomain())this.headers.append('DomainId', this.globalService.getDomain().domainId);
  53. if(this.globalService.getModule())this.headers.append('ModuleId', this.globalService.getModule().moduleId);
  54. }
  55.  
  56. public getText(url: string) : Observable<string> {
  57. return this.http.get(environment.webApiUrl + url, {
  58. headers: this.headers
  59. }).map((response: Response) => response.text());
  60. }
  61.  
  62. private extractData(res: Response) {
  63. return res.json() || [];
  64. }
  65.  
  66. private httpCallReady(): void {
  67. this.activeCalls--;
  68. if (this.activeCalls === 0) {
  69. this.progressService.done();
  70. }
  71. }
  72.  
  73. private httpCallRequested(): void {
  74. if (this.activeCalls === 0) {
  75. this.progressService.start();
  76. }
  77. this.activeCalls++;
  78. }
  79. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement