Projekt

Obecné

Profil

Stáhnout (4.72 KB) Statistiky
| Větev: | Tag: | Revize:
1 84a8db02 Hung Hoang
import {Injectable} from '@angular/core';
2 4bcef705 Hung Hoang
import {HttpClient, HttpParams} from '@angular/common/http';
3 84a8db02 Hung Hoang
import {BasicService} from './basic.service';
4 79d7de40 Hung Hoang
import {catchError} from 'rxjs/operators';
5 41741550 Hung Hoang
6 fd5ab42e Hung Hoang
import {AuthorizationRequest, VacationRequest} from '../../models/requests.model';
7
import {Languages, ProfileStatus} from '../../enums/common.enum';
8 c40c10c6 Hung Hoang
import {Observable} from 'rxjs';
9 fd5ab42e Hung Hoang
import {UserBasicInformation} from '../../models/user.model';
10 1d169f6d Hung Hoang
import {MatSnackBar} from '@angular/material';
11 41741550 Hung Hoang
12
@Injectable({
13
  providedIn: 'root'
14
})
15
export class UsersService extends BasicService {
16 4bcef705 Hung Hoang
  private _usersUrl = this.baseUrl + '/api/users';
17
18 1d169f6d Hung Hoang
  constructor(protected http: HttpClient, protected snackBar: MatSnackBar) {
19
    super(http, snackBar);
20 4bcef705 Hung Hoang
  }
21 41741550 Hung Hoang
22 84a8db02 Hung Hoang
  /**
23
   * Returns all authorized users
24
   */
25 41741550 Hung Hoang
  getAuthorizedUsers() {
26 4bcef705 Hung Hoang
    return this.makeGetUsersApiCall(ProfileStatus.AUTHORIZED, null);
27 41741550 Hung Hoang
  }
28
29 84a8db02 Hung Hoang
  /**
30
   * Returns all authorized users with specified language
31
   * overloaded version of getAuthorizedUsers
32
   * @param language filter users based on language
33
   */
34
  getAuthorizedUsersWithLanguage(language: Languages) {
35 4bcef705 Hung Hoang
    return this.makeGetUsersApiCall(ProfileStatus.AUTHORIZED, language);
36 84a8db02 Hung Hoang
  }
37
38
  /**
39
   * Returns all pending users
40
   */
41 41741550 Hung Hoang
  getPendingUsers() {
42 4bcef705 Hung Hoang
    return this.makeGetUsersApiCall(ProfileStatus.PENDING, null);
43 84a8db02 Hung Hoang
  }
44
45
  /**
46
   * Returns all pending users with specified language
47
   * overloaded version of getPendingUsers
48
   * @param language filter users based on language
49
   */
50
  getPendingUsersWithLanguage(language: Languages) {
51 4bcef705 Hung Hoang
    return this.makeGetUsersApiCall(ProfileStatus.PENDING, language);
52 41741550 Hung Hoang
  }
53
54 84a8db02 Hung Hoang
  /**
55
   * Return all rejected users
56
   */
57 41741550 Hung Hoang
  getRejectedUsers() {
58 4bcef705 Hung Hoang
    return this.makeGetUsersApiCall(ProfileStatus.REJECTED, null);
59 41741550 Hung Hoang
  }
60
61 84a8db02 Hung Hoang
  /**
62
   * Returns all rejected users with specified language
63
   * overloaded version of getRejectedUsers
64
   * @param language filter users based on language
65
   */
66
  getRejectedUsersWithLanguage(language: Languages) {
67 4bcef705 Hung Hoang
    return this.makeGetUsersApiCall(ProfileStatus.REJECTED, language);
68 84a8db02 Hung Hoang
  }
69
70
 /**
71
  * Default api call which returns all users in the database
72
  * regardless of language and status
73
  */
74
  getUsers() {
75 4bcef705 Hung Hoang
    return this.makeGetUsersApiCall(null, null);
76 41741550 Hung Hoang
  }
77
78 84a8db02 Hung Hoang
  /**
79
   * Returns all vacation requests
80
   */
81 41741550 Hung Hoang
  getVacationRequests() {
82 4bcef705 Hung Hoang
    return this.makeGetVacationRequestsApiCall(null);
83 84a8db02 Hung Hoang
  }
84
85
  /**
86
   * Returns vacations filtered by language
87
   * @param language filter by passed language
88
   */
89
  getVacationRequestsWithLanguage(language: Languages) {
90 4bcef705 Hung Hoang
    return this.makeGetVacationRequestsApiCall(language);
91 41741550 Hung Hoang
  }
92
93 84a8db02 Hung Hoang
94
  /**
95
   * Returns all authorization requests
96
   */
97 41741550 Hung Hoang
  getAuthorizationRequests() {
98 4bcef705 Hung Hoang
    return this.makeGetAuthorizationRequestsApiCall(null);
99 84a8db02 Hung Hoang
  }
100
101
102
  /**
103
   * Returns authorization requests filtered by language
104
   * @param language filter by passed language
105
   */
106
  getAuthorizationRequestsWithLanguage(language: Languages) {
107 4bcef705 Hung Hoang
    return this.makeGetAuthorizationRequestsApiCall(language);
108 84a8db02 Hung Hoang
  }
109
110 4bcef705 Hung Hoang
  /**
111
   * Získání žádostí o autorizaci všech uživatelů s možností filtrace pomocí úrovně schválení.
112
   * GET /users/requests/authorization?[lang=<CZ,EN>]&[status=<ACCEPTED, PENDING, REJECTED>
113
   * @param language filter by language
114
   */
115
  private makeGetAuthorizationRequestsApiCall(language: string) {
116
    const httpParams: HttpParams = this.createParams({lang: language});
117
    const options = {params: httpParams};
118 84a8db02 Hung Hoang
119 4bcef705 Hung Hoang
    return this.http.get<AuthorizationRequest[]>(this._usersUrl + '/requests/authorization', options)
120 84a8db02 Hung Hoang
      .pipe(
121
        catchError(err => this.handleError(err))
122
      );
123
  }
124
125 4bcef705 Hung Hoang
  /**
126
   * Získání žádostí o dovolené a sick days všech uživatelů s možností filtrace pomocí úrovně schválení.
127
   * GET /users/requests/vacation? [lang=<CZ,EN>]&[status=<ACCEPTED, PENDING, REJECTED>]
128
   * @param language filter by language
129
   */
130
  private makeGetVacationRequestsApiCall(language: string) {
131
    const httpParams: HttpParams = this.createParams({lang: language});
132
    const options = {params: httpParams};
133 84a8db02 Hung Hoang
134 4bcef705 Hung Hoang
    return this.http.get<VacationRequest[]>(this._usersUrl + '/requests/vacation', options)
135 84a8db02 Hung Hoang
      .pipe(
136
        catchError(err => this.handleError(err))
137
      );
138 41741550 Hung Hoang
  }
139
140 4bcef705 Hung Hoang
  /**
141
   * Získání všech uživatelů s možností filtrace pomocí statusu
142
   * GET /users?[lang=<CZ,EN>]&[status=<ACCEPTED, PENDING, REJECTED>]
143
   * @param status filter by status
144
   * @param language filter by language
145
   */
146
  private makeGetUsersApiCall(status: string, language: string): Observable<UserBasicInformation[]> {
147
    const httpParams: HttpParams = this.createParams({lang: language, status});
148
    const options = {params: httpParams};
149 84a8db02 Hung Hoang
150 4bcef705 Hung Hoang
    return this.http.get<UserBasicInformation[]>(this._usersUrl, options)
151 41741550 Hung Hoang
      .pipe(
152
        catchError(err => this.handleError(err))
153
      );
154
  }
155
156
}