]>
Commit | Line | Data |
---|---|---|
df98563e C |
1 | import { Injectable } from '@angular/core' |
2 | import { Observable } from 'rxjs/Observable' | |
3 | import 'rxjs/add/operator/catch' | |
4 | import 'rxjs/add/operator/map' | |
eb4f957e | 5 | |
df98563e C |
6 | import { RequestStats } from './request-stats.model' |
7 | import { AuthHttp, RestExtractor } from '../../../shared' | |
eb4f957e C |
8 | |
9 | @Injectable() | |
10 | export class RequestService { | |
df98563e | 11 | private static BASE_REQUEST_URL = API_URL + '/api/v1/requests/' |
eb4f957e C |
12 | |
13 | constructor ( | |
14 | private authHttp: AuthHttp, | |
15 | private restExtractor: RestExtractor | |
16 | ) {} | |
17 | ||
df98563e | 18 | getStats (): Observable<{ [ id: string ]: RequestStats }> { |
eb4f957e C |
19 | return this.authHttp.get(RequestService.BASE_REQUEST_URL + 'stats') |
20 | .map(this.restExtractor.extractDataGet) | |
99fdec46 | 21 | .map(this.buildRequestObjects) |
df98563e | 22 | .catch((res) => this.restExtractor.handleError(res)) |
eb4f957e | 23 | } |
99fdec46 | 24 | |
df98563e C |
25 | private buildRequestObjects (data: any) { |
26 | const requestSchedulers = {} | |
99fdec46 C |
27 | |
28 | Object.keys(data).forEach(requestSchedulerName => { | |
df98563e C |
29 | requestSchedulers[requestSchedulerName] = new RequestStats(data[requestSchedulerName]) |
30 | }) | |
99fdec46 | 31 | |
df98563e | 32 | return requestSchedulers |
99fdec46 | 33 | } |
eb4f957e | 34 | } |