]>
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 | changePassword (newPassword: string) { | |
19 | const url = UserService.BASE_USERS_URL + 'me' | |
20 | const body: UserUpdateMe = { | |
21 | password: newPassword | |
22 | } | |
23 | ||
24 | return this.authHttp.put(url, body) | |
25 | .map(this.restExtractor.extractDataBool) | |
26 | .catch(res => this.restExtractor.handleError(res)) | |
27 | } | |
28 | ||
29 | updateMyDetails (details: UserUpdateMe) { | |
30 | const url = UserService.BASE_USERS_URL + 'me' | |
31 | ||
32 | return this.authHttp.put(url, details) | |
33 | .map(this.restExtractor.extractDataBool) | |
34 | .catch(res => this.restExtractor.handleError(res)) | |
35 | } | |
36 | ||
37 | signup (userCreate: UserCreate) { | |
38 | return this.authHttp.post(UserService.BASE_USERS_URL + 'register', userCreate) | |
39 | .map(this.restExtractor.extractDataBool) | |
40 | .catch(res => this.restExtractor.handleError(res)) | |
41 | } | |
42 | } |