]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blame - client/src/app/+admin/requests/shared/request.service.ts
Use typescript standard and lint all files
[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
df98563e
C
6import { RequestStats } from './request-stats.model'
7import { AuthHttp, RestExtractor } from '../../../shared'
eb4f957e
C
8
9@Injectable()
10export 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}