]>
Commit | Line | Data |
---|---|---|
1 | import { Injectable } from '@angular/core' | |
2 | import { HttpClient } from '@angular/common/http' | |
3 | import 'rxjs/add/operator/catch' | |
4 | import 'rxjs/add/operator/map' | |
5 | ||
6 | import { RestExtractor } from '../rest' | |
7 | import { UserCreate, UserUpdateMe } from '../../../../../shared' | |
8 | ||
9 | @Injectable() | |
10 | export class UserService { | |
11 | static BASE_USERS_URL = API_URL + '/api/v1/users/' | |
12 | ||
13 | constructor ( | |
14 | private authHttp: HttpClient, | |
15 | private restExtractor: RestExtractor | |
16 | ) {} | |
17 | ||
18 | checkTokenValidity () { | |
19 | const url = UserService.BASE_USERS_URL + 'me' | |
20 | ||
21 | // AuthHttp will redirect us to the login page if the token is not valid anymore | |
22 | this.authHttp.get(url).subscribe() | |
23 | } | |
24 | ||
25 | changePassword (newPassword: string) { | |
26 | const url = UserService.BASE_USERS_URL + 'me' | |
27 | const body: UserUpdateMe = { | |
28 | password: newPassword | |
29 | } | |
30 | ||
31 | return this.authHttp.put(url, body) | |
32 | .map(this.restExtractor.extractDataBool) | |
33 | .catch(res => this.restExtractor.handleError(res)) | |
34 | } | |
35 | ||
36 | updateMyDetails (details: UserUpdateMe) { | |
37 | const url = UserService.BASE_USERS_URL + 'me' | |
38 | ||
39 | return this.authHttp.put(url, details) | |
40 | .map(this.restExtractor.extractDataBool) | |
41 | .catch(res => this.restExtractor.handleError(res)) | |
42 | } | |
43 | ||
44 | signup (userCreate: UserCreate) { | |
45 | return this.authHttp.post(UserService.BASE_USERS_URL + 'register', userCreate) | |
46 | .map(this.restExtractor.extractDataBool) | |
47 | .catch(res => this.restExtractor.handleError(res)) | |
48 | } | |
49 | } |