]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blame - client/src/app/shared/rest/rest-extractor.service.ts
Merge branch 'webseed'
[github/Chocobozzz/PeerTube.git] / client / src / app / shared / rest / rest-extractor.service.ts
CommitLineData
de59c48f
C
1import { Injectable } from '@angular/core';
2import { Response } from '@angular/http';
3import { Observable } from 'rxjs/Observable';
4
5export interface ResultList {
6 data: any[];
7 total: number;
8}
9
10@Injectable()
11export class RestExtractor {
12
13 constructor () { ; }
14
15 extractDataBool(res: Response) {
16 return true;
17 }
18
19 extractDataList(res: Response) {
20 const body = res.json();
21
22 const ret: ResultList = {
23 data: body.data,
24 total: body.total
25 };
26
27 return ret;
28 }
29
30 extractDataGet(res: Response) {
31 return res.json();
32 }
33
34 handleError(res: Response) {
35 let text = 'Server error: ';
36 text += res.text();
bf68dd75
C
37 let json = '';
38
39 try {
40 json = res.json();
41 } catch (err) { ; }
de59c48f
C
42
43 const error = {
44 json,
45 text
46 };
47
bf68dd75
C
48 console.error(error);
49
de59c48f
C
50 return Observable.throw(error);
51 }
52}