import { Injectable } from '@angular/core'; import { HttpClient } from '@angular/common/http'; import { environment } from '@environments/environment'; import { User } from '@app/models'; import { Observable } from 'rxjs/internal/Observable'; import { throwError } from 'rxjs/internal/observable/throwError'; import { map, catchError } from 'rxjs/operators'; @Injectable({ providedIn: 'root' }) export class UserService { constructor(private http: HttpClient) { } getAllUsers() { return this.http.get(`${environment.productionApiUrl}/users`); } getById(id: number) { return this.http.get(`${environment.apiUrl}/users/${id}`); } createUser(user: { first_name :string, last_name :string, email :string, role :string }): Observable { return this.http.post(`${environment.productionApiUrl}/organizations`, user) .pipe( map(response => { return response; }), catchError(this.errorHandl) ) } errorHandl(error) { let errorMessage = ''; if(error.error instanceof ErrorEvent) { // Get client-side error errorMessage = error.error.message; } else { // Get server-side error errorMessage = `Error Code: ${error.status}\nMessage: ${error.message}`; } return throwError(errorMessage); } }