]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blob - client/src/app/shared/users/user.service.ts
Client: add ability for user to change nsfw settings
[github/Chocobozzz/PeerTube.git] / client / src / app / shared / users / user.service.ts
1 import { Injectable } from '@angular/core';
2 import 'rxjs/add/operator/catch';
3 import 'rxjs/add/operator/map';
4
5 import { AuthService } from '../../core';
6 import { AuthHttp } from '../auth';
7 import { RestExtractor } from '../rest';
8
9 @Injectable()
10 export class UserService {
11 static BASE_USERS_URL = '/api/v1/users/';
12
13 constructor(
14 private authHttp: AuthHttp,
15 private authService: AuthService,
16 private restExtractor: RestExtractor
17 ) {}
18
19 checkTokenValidity() {
20 const url = UserService.BASE_USERS_URL + 'me';
21
22 // AuthHttp will redirect us to the login page if the oken is not valid anymore
23 this.authHttp.get(url).subscribe(() => { ; });
24 }
25
26 changePassword(newPassword: string) {
27 const url = UserService.BASE_USERS_URL + this.authService.getUser().id;
28 const body = {
29 password: newPassword
30 };
31
32 return this.authHttp.put(url, body)
33 .map(this.restExtractor.extractDataBool)
34 .catch((res) => this.restExtractor.handleError(res));
35 }
36
37 updateDetails(details: { displayNSFW: boolean }) {
38 const url = UserService.BASE_USERS_URL + this.authService.getUser().id;
39
40 return this.authHttp.put(url, details)
41 .map(this.restExtractor.extractDataBool)
42 .catch((res) => this.restExtractor.handleError(res));
43 }
44 }