· 5 years ago · Jan 22, 2020, 08:04 PM
1import { Injectable } from '@angular/core';
2import { HttpClient, HttpParams } from '@angular/common/http';
3import { User } from '../models/User';
4import { Observable } from 'rxjs';
5
6// tslint:disable
7@Injectable()
8export class ApiService {
9
10 constructor(private http: HttpClient) {
11 }
12
13 baseUrl: string = 'http://localhost:8082/users/';
14 redirectURL: string;
15
16 login(credentials): Observable<any> {
17 const body = new HttpParams()
18 .set('username', credentials.email)
19 .set('password', credentials.password)
20 .set('grant_type', 'password');
21
22 const headers = {
23 'Authorization': 'Basic ' + btoa('politechnika:politechnika'),
24 'Content-type': 'application/x-www-form-urlencoded'
25 };
26 return this.http.post('http://localhost:8082/' + 'oauth/token', body, {headers});
27 }
28
29 userLoggedIn(): boolean {
30 return localStorage.getItem('access_token') != null;
31 }
32
33 userCanAccessPageWithRoles(roles:string[]){
34 const userRoles: string[] = JSON.parse(localStorage.getItem('userData')).roles;
35 return roles != null && userRoles.some((role) => roles.indexOf(role) !== -1);
36 }
37
38 getUsers() {
39 return this.http.get(this.baseUrl + 'user?access_token=' + JSON.parse(window.sessionStorage.getItem('token')).access_token);
40 }
41
42 getUserRole(id: number) {
43 return this.http.get(this.baseUrl + 'user/' + id + '?access_token=' + JSON.parse(window.sessionStorage.getItem('token')).access_token);
44 }
45
46 createUser(user: User) {
47 return this.http.post(this.baseUrl + 'user?access_token=' + JSON.parse(window.sessionStorage.getItem('token')).access_token, user);
48 }
49
50 updateUser(user: User) {
51 return this.http.put(this.baseUrl + 'user/' + user.id + '?access_token=' + JSON.parse(window.sessionStorage.getItem('token')).access_token, user);
52 }
53
54 deleteUser(id: number) {
55 return this.http.delete(this.baseUrl + 'user/' + id + '?access_token=' + JSON.parse(window.sessionStorage.getItem('token')).access_token);
56 }
57}