Ver Fonte

User service return User Observable

oscarleiva há 5 anos atrás
pai
commit
a8fc33a842
2 ficheiros alterados com 35 adições e 31 exclusões
  1. 10 10
      src/app/services/auth2.service.ts
  2. 25 21
      src/app/services/user.service.ts

+ 10 - 10
src/app/services/auth2.service.ts

@@ -48,23 +48,23 @@ export class AuthService {
   }
 
   getUserLevel() {
-    var bytes = CryptoJS.AES.decrypt(
+    const bytes = CryptoJS.AES.decrypt(
       localStorage.getItem('USER_MENU'),
       'soma-inverlec-2019'
     );
-    var role_number = bytes.toString(CryptoJS.enc.Utf8);
+    const role_number = bytes.toString(CryptoJS.enc.Utf8);
     return role_number;
   }
 
   refreshToken() {
-    let refreshToken: string = this.getRefreshToken();
+    const refreshToken: string = this.getRefreshToken();
     return this.http
       .post<any>(`${environment.productionApiUrl}/auth/refresh`, {
         Authorization: `Bearer ${refreshToken}`,
       })
       .pipe(
-        tap((tokens: Token) => {
-          this.storeJwtToken(tokens['data']['access_token']);
+        tap((tokens) => {
+          this.storeJwtToken(tokens.data.access_token);
         }, catchError(this.errorHandl))
       );
   }
@@ -95,18 +95,18 @@ export class AuthService {
     localStorage.setItem(this.JWT_TOKEN, jwt);
   }
 
-  private storeTokens(tokens: Token) {
+  private storeTokens(tokens) {
     localStorage.clear();
     localStorage.setItem(
       this.USER_MENU,
       CryptoJS.AES.encrypt(
-        tokens['data']['user'].role.toString(),
+        tokens.data.user.role.toString(),
         'soma-inverlec-2019'
       ).toString()
     );
-    localStorage.setItem(this.JWT_TOKEN, tokens['data']['user'].token);
-    localStorage.setItem(this.REFRESH_TOKEN, tokens['data']['user'].refresh);
-    localStorage.setItem(this.USER_ID, tokens['data']['user'].id);
+    localStorage.setItem(this.JWT_TOKEN, tokens.data.user.token);
+    localStorage.setItem(this.REFRESH_TOKEN, tokens.data.user.refresh);
+    localStorage.setItem(this.USER_ID, tokens.data.user.id);
   }
 
   removeTokens() {

+ 25 - 21
src/app/services/user.service.ts

@@ -1,15 +1,15 @@
-import { Injectable } from "@angular/core";
-import { HttpClient } from "@angular/common/http";
+import { Injectable } from '@angular/core';
+import { HttpClient, HttpErrorResponse } 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";
+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, timeout } from 'rxjs/operators';
 
-@Injectable({ providedIn: "root" })
+@Injectable({ providedIn: 'root' })
 export class UserService {
-  constructor(private http: HttpClient) {}
+  constructor(private http: HttpClient) { }
 
   getAllUsers() {
     return this.http.get<User[]>(`${environment.productionApiUrl}/users`);
@@ -19,12 +19,15 @@ export class UserService {
     return this.http.get<User>(`${environment.apiUrl}/users/${id}`);
   }
 
-  getUserById(id: string) {
+  getUserById(id: string): Observable<User> {
     return this.http
       .get<any>(`${environment.productionApiUrl}/customer/${id}`)
       .pipe(
+        timeout(3000),
         map((response) => {
-          return response;
+
+          const user = Object.assign(new User(), response.data.user);
+          return user;
         }),
         catchError(this.errorHandl)
       );
@@ -187,15 +190,16 @@ export class UserService {
       );
   }
 
-  errorHandl(error) {
-    let errorMessage = "";
-    if (error.error) {
-      // Get client-side error
-      errorMessage = error.error;
-    } else {
-      // Get server-side error
-      errorMessage = `Error Code: ${error.status}\nMessage: ${error.message}`;
-    }
-    return throwError(errorMessage);
+  errorHandl(error: HttpErrorResponse) {
+    console.log(error.message);
+    // if (error.error) {
+    //   // Get client-side error
+    //   errorMessage = error.error;
+    // } else {
+    //   // Get server-side error
+    //   errorMessage = `Error Code: ${error.status}\nMessage: ${error.message}`;
+    // }
+    // return throwError(errorMessage);
+    return throwError(error.message || 'Error en el Servidor');
   }
 }