1 import { Injectable } from '@angular/core'
2 import { HttpClient } from '@angular/common/http'
3 import { Observable } from 'rxjs/Observable'
4 import 'rxjs/add/operator/catch'
5 import 'rxjs/add/operator/map'
7 import { RequestSchedulerStats } from '../../../../../../shared'
8 import { RestExtractor } from '../../../shared'
9 import { RequestSchedulerStatsAttributes } from './request-schedulers-stats-attributes.model'
12 export class RequestSchedulersService {
13 private static BASE_REQUEST_URL = API_URL + '/api/v1/request-schedulers/'
16 private authHttp: HttpClient,
17 private restExtractor: RestExtractor
21 return this.authHttp.get<RequestSchedulerStats>(RequestSchedulersService.BASE_REQUEST_URL + 'stats')
22 .map(res => this.buildRequestObjects(res))
23 .catch(res => this.restExtractor.handleError(res))
26 private buildRequestObjects (data: RequestSchedulerStats) {
27 const requestSchedulers: { [ id: string ]: RequestSchedulerStatsAttributes } = {}
29 Object.keys(data).forEach(requestSchedulerName => {
30 requestSchedulers[requestSchedulerName] = new RequestSchedulerStatsAttributes(data[requestSchedulerName])
33 return requestSchedulers