]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blame - client/src/app/+admin/requests/shared/request.service.ts
Rename 'npm run upgrade' to 'npm run upgrade-peertube'
[github/Chocobozzz/PeerTube.git] / client / src / app / +admin / requests / shared / request.service.ts
CommitLineData
df98563e
C
1import { Injectable } from '@angular/core'
2import { Observable } from 'rxjs/Observable'
3import 'rxjs/add/operator/catch'
4import 'rxjs/add/operator/map'
eb4f957e 5
154898b0 6import { RequestScheduler } from '../../../../../../shared'
df98563e 7import { AuthHttp, RestExtractor } from '../../../shared'
154898b0 8import { RequestSchedulerStatsAttributes } from './request-stats-attributes.model'
eb4f957e
C
9
10@Injectable()
11export 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}