diff options
author | Chocobozzz <florian.bigard@gmail.com> | 2017-06-25 17:19:46 +0200 |
---|---|---|
committer | Chocobozzz <florian.bigard@gmail.com> | 2017-06-25 17:19:46 +0200 |
commit | e636eb88101a51399057c86477af6677f5614d48 (patch) | |
tree | ba56f0da932613c8013a2c52905ded1987cd6d6d /client/src/app/+admin/request-schedulers/shared/request-schedulers.service.ts | |
parent | 4f133041819409a72cf70fa2fa6c4df14c6de4fd (diff) | |
download | PeerTube-e636eb88101a51399057c86477af6677f5614d48.tar.gz PeerTube-e636eb88101a51399057c86477af6677f5614d48.tar.zst PeerTube-e636eb88101a51399057c86477af6677f5614d48.zip |
Requests -> RequestSchedulers
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.ts | 35 |
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 @@ | |||
1 | import { Injectable } from '@angular/core' | ||
2 | import { Observable } from 'rxjs/Observable' | ||
3 | import 'rxjs/add/operator/catch' | ||
4 | import 'rxjs/add/operator/map' | ||
5 | |||
6 | import { RequestSchedulerStats } from '../../../../../../shared' | ||
7 | import { AuthHttp, RestExtractor } from '../../../shared' | ||
8 | import { RequestSchedulerStatsAttributes } from './request-schedulers-stats-attributes.model' | ||
9 | |||
10 | @Injectable() | ||
11 | export 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 | } | ||