aboutsummaryrefslogtreecommitdiffhomepage
path: root/client/src/app/+admin/request-schedulers/shared/request-schedulers.service.ts
diff options
context:
space:
mode:
Diffstat (limited to 'client/src/app/+admin/request-schedulers/shared/request-schedulers.service.ts')
-rw-r--r--client/src/app/+admin/request-schedulers/shared/request-schedulers.service.ts35
1 files changed, 35 insertions, 0 deletions
diff --git a/client/src/app/+admin/request-schedulers/shared/request-schedulers.service.ts b/client/src/app/+admin/request-schedulers/shared/request-schedulers.service.ts
new file mode 100644
index 000000000..e9b166f78
--- /dev/null
+++ b/client/src/app/+admin/request-schedulers/shared/request-schedulers.service.ts
@@ -0,0 +1,35 @@
1import { Injectable } from '@angular/core'
2import { Observable } from 'rxjs/Observable'
3import 'rxjs/add/operator/catch'
4import 'rxjs/add/operator/map'
5
6import { RequestSchedulerStats } from '../../../../../../shared'
7import { AuthHttp, RestExtractor } from '../../../shared'
8import { RequestSchedulerStatsAttributes } from './request-schedulers-stats-attributes.model'
9
10@Injectable()
11export class RequestSchedulersService {
12 private static BASE_REQUEST_URL = API_URL + '/api/v1/request-schedulers/'
13
14 constructor (
15 private authHttp: AuthHttp,
16 private restExtractor: RestExtractor
17 ) {}
18
19 getStats (): Observable<RequestSchedulerStats> {
20 return this.authHttp.get(RequestSchedulersService.BASE_REQUEST_URL + 'stats')
21 .map(this.restExtractor.extractDataGet)
22 .map(this.buildRequestObjects)
23 .catch((res) => this.restExtractor.handleError(res))
24 }
25
26 private buildRequestObjects (data: RequestSchedulerStats) {
27 const requestSchedulers = {}
28
29 Object.keys(data).forEach(requestSchedulerName => {
30 requestSchedulers[requestSchedulerName] = new RequestSchedulerStatsAttributes(data[requestSchedulerName])
31 })
32
33 return requestSchedulers
34 }
35}