@@ -3,18 +3,32 @@ import { Injectable } from '@angular/core';
33import { Router } from '@angular/router' ;
44import { environment } from 'environments/environment' ;
55
6- import { Observable , map } from 'rxjs' ;
6+ import { Observable , catchError , map , of } from 'rxjs' ;
7+
8+ import { User } from '@models/user.model' ;
79
810import { IUserCreated } from '@interfaces/response.interface' ;
911import { ICreateAccount , ILogin } from '@interfaces/user.interface' ;
1012
13+ import Storage from '@utils/storage.util' ;
14+
1115const base_url = environment . base_url ;
1216
1317@Injectable ( {
1418 providedIn : 'root'
1519} )
1620export class AuthService {
1721
22+ userActive : User ;
23+
24+ get headers ( ) {
25+ return {
26+ headers : {
27+ 'x-token' : Storage . getLocalStorage ( 'token' ) || ''
28+ }
29+ } ;
30+ }
31+
1832 constructor (
1933 private http : HttpClient ,
2034 private router : Router
@@ -27,6 +41,21 @@ export class AuthService {
2741
2842 login ( data : ILogin ) : Observable < IUserCreated > {
2943 const url = `${ base_url } /auth/login` ;
30- return this . http . post < IUserCreated > ( url , data ) ;
44+ return this . http . post < IUserCreated > ( url , data ) . pipe ( map ( ( resp ) => {
45+ this . userActive = resp . user ;
46+ Storage . savelocalStorage ( 'token' , resp . token ) ;
47+ return resp ;
48+ } ) ) ;
49+ }
50+
51+ validateToken ( ) : Observable < boolean > {
52+ const url = `${ base_url } /auth/renew` ;
53+ return this . http . get < IUserCreated > ( url , this . headers )
54+ . pipe ( map ( ( resp ) => {
55+ this . userActive = resp . user ;
56+ Storage . removeLocalStorage ( 'token' ) ;
57+ Storage . savelocalStorage ( 'token' , resp . token ) ;
58+ return true ;
59+ } ) , catchError ( ( ) => of ( false ) ) ) ;
3160 }
3261}
0 commit comments