]>
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 | |
154898b0 | 6 | import { RequestScheduler } from '../../../../../../shared' |
df98563e | 7 | import { AuthHttp, RestExtractor } from '../../../shared' |
154898b0 | 8 | import { RequestSchedulerStatsAttributes } from './request-stats-attributes.model' |
eb4f957e C |
9 | |
10 | @Injectable() | |
11 | export class RequestService { | |
df98563e | 12 | private static BASE_REQUEST_URL = API_URL + '/api/v1/requests/' |
eb4f957e C |
13 | |
14 | constructor ( | |
15 | private authHttp: AuthHttp, | |
16 | private restExtractor: RestExtractor | |
17 | ) {} | |
18 | ||
154898b0 | 19 | getStats (): Observable<RequestScheduler> { |
eb4f957e C |
20 | return this.authHttp.get(RequestService.BASE_REQUEST_URL + 'stats') |
21 | .map(this.restExtractor.extractDataGet) | |
99fdec46 | 22 | .map(this.buildRequestObjects) |
df98563e | 23 | .catch((res) => this.restExtractor.handleError(res)) |
eb4f957e | 24 | } |
99fdec46 | 25 | |
154898b0 | 26 | private buildRequestObjects (data: RequestScheduler) { |
df98563e | 27 | const requestSchedulers = {} |
99fdec46 C |
28 | |
29 | Object.keys(data).forEach(requestSchedulerName => { | |
154898b0 | 30 | requestSchedulers[requestSchedulerName] = new RequestSchedulerStatsAttributes(data[requestSchedulerName]) |
df98563e | 31 | }) |
99fdec46 | 32 | |
df98563e | 33 | return requestSchedulers |
99fdec46 | 34 | } |
eb4f957e | 35 | } |