user.service.ts 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. import { Injectable } from '@angular/core';
  2. import { HttpClient } from '@angular/common/http';
  3. import { environment } from '@environments/environment';
  4. import { User } from '@app/models';
  5. import { Observable } from 'rxjs/internal/Observable';
  6. import { throwError } from 'rxjs/internal/observable/throwError';
  7. import { map, catchError } from 'rxjs/operators';
  8. @Injectable({ providedIn: 'root' })
  9. export class UserService {
  10. constructor(private http: HttpClient) { }
  11. getAllUsers() {
  12. return this.http.get<User[]>(`${environment.productionApiUrl}/users`);
  13. }
  14. getById(id: number) {
  15. return this.http.get<User>(`${environment.apiUrl}/users/${id}`);
  16. }
  17. createUser(user: { first_name :string, last_name :string,
  18. email :string, role :string }): Observable<boolean> {
  19. return this.http.post<any>(`${environment.productionApiUrl}/organizations`, user)
  20. .pipe(
  21. map(response => {
  22. return response;
  23. }),
  24. catchError(this.errorHandl)
  25. )
  26. }
  27. errorHandl(error) {
  28. let errorMessage = '';
  29. if(error.error instanceof ErrorEvent) {
  30. // Get client-side error
  31. errorMessage = error.error.message;
  32. } else {
  33. // Get server-side error
  34. errorMessage = `Error Code: ${error.status}\nMessage: ${error.message}`;
  35. }
  36. return throwError(errorMessage);
  37. }
  38. }