| 1 |
- {"ast":null,"code":"import { __decorate } from \"tslib\";\nimport { environment } from 'src/environments/environment';\nimport { Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { BehaviorSubject } from 'rxjs';\nimport { Router } from '@angular/router';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { AlertMessageComponent } from 'src/app/components/shared/alert-message/alert-message.component';\nimport { map, tap } from 'rxjs/operators';\nimport * as jwt_decode from 'jwt-decode';\nlet AuthService = class AuthService {\n constructor(http, router, snackBar) {\n this.http = http;\n this.router = router;\n this.snackBar = snackBar;\n //url api\n this.apiUrl = environment.apiUrl;\n this.currentUserSubject = new BehaviorSubject(null);\n this.currentUser = this.currentUserSubject.asObservable();\n this.messageSource = new BehaviorSubject('default message');\n this.currentMessage = this.messageSource.asObservable();\n this.tokenSubject = new BehaviorSubject(JSON.parse(localStorage.getItem('token')));\n this.token = this.tokenSubject.asObservable();\n this.user_infoSubject = new BehaviorSubject(JSON.parse(localStorage.getItem('user')));\n this.user_info = this.user_infoSubject.asObservable();\n }\n changeMessage(message) {\n this.messageSource.next(message);\n }\n //get token\n get tokenValue() {\n return this.tokenSubject.value;\n }\n //get user Info\n get userValue() {\n return this.user_infoSubject.value;\n }\n // login get token on login \n signIn(credentials) {\n //debugger;\n console.log(\"url ========\", this.apiUrl);\n return this.http.post(`${this.apiUrl}/api/auth/login`, credentials).pipe(map(token => {\n // store jwt token in local storage \n localStorage.setItem('token', JSON.stringify(token));\n this.tokenSubject.next(token);\n return token;\n }));\n }\n // Méthode pour s'authentifier avec Google\n signInWithGoogle() {\n return this.http.get(`${this.apiUrl}/api/auth/google`).pipe(map(user => {\n console.log('je suis present', user);\n localStorage.setItem('user', JSON.stringify(user));\n return user;\n }));\n }\n // signInWithGoogle(): Observable<string> {\n // return this.http.get<any>(`${this.apiUrl}/api/auth/google/callback`).pipe(\n // map(response => response.token),\n // catchError(error => {\n // console.log(error);\n // // Gérer l'erreur\n // throw error;\n // })\n // );\n // }\n // login get token on login admin\n signInAdmin(credentials) {\n //debugger;\n console.log(\"url ========\", this.apiUrl);\n return this.http.post(`${this.apiUrl}/api/auth/admin`, credentials).pipe(map(token => {\n // store jwt token in local storage \n localStorage.setItem('token', JSON.stringify(token));\n this.tokenSubject.next(token);\n return token;\n }));\n }\n // iscription get token on login \n signUP(data) {\n return this.http.post(`${this.apiUrl}/api/auth/signup`, data).pipe(map(token => {\n // store jwt token in local storage \n localStorage.setItem('token', JSON.stringify(token));\n this.tokenSubject.next(token);\n return token;\n }));\n }\n // mot de passe oublie \n lostPassword(email) {\n return this.http.put(`${this.apiUrl}/api/auth/forgot-password`, email);\n }\n // réinitialiser mot de passe \n resetPassword(data) {\n return this.http.put(`${this.apiUrl}/api/auth/reset-password`, data);\n }\n // isLoggedIn\n isLoggedIn() {\n return localStorage.getItem('token') !== null;\n }\n getCurrentUser() {\n return this.http.get('/api/auth/user').pipe(tap(user => {\n this.currentUserSubject.next(user);\n }));\n }\n //logout\n logout() {\n // remove token from local storage \n localStorage.removeItem('token');\n this.tokenSubject.next(null);\n // remove user from local storage \n localStorage.removeItem('user');\n this.user_infoSubject.next(null);\n this.router.navigate(['/login']);\n setTimeout(() => {\n document.location.reload();\n }, 1000);\n }\n getUserInfo() {\n let token = this.tokenSubject.value.token;\n if (token) {\n // User is authenticated locally\n let decodedToken = jwt_decode(token);\n return this.http.get(`${this.apiUrl}/api/users/${decodedToken.userId}`).pipe(map(user => {\n // Store user info in local storage\n localStorage.setItem('user', JSON.stringify(user));\n this.user_infoSubject.next(user);\n return user;\n }));\n } else {\n // User is authenticated via Google\n return this.http.get(`${this.apiUrl}/api/auth/google`).pipe(map(user => {\n // Store user info in local storage\n localStorage.setItem('user', JSON.stringify(user));\n this.user_infoSubject.next(user);\n return user;\n }));\n }\n }\n openSnackBar(message) {\n this.snackBar.openFromComponent(AlertMessageComponent, {\n data: message,\n panelClass: ['blue-snackbar'],\n duration: 10000\n });\n }\n static #_ = this.ctorParameters = () => [{\n type: HttpClient\n }, {\n type: Router\n }, {\n type: MatSnackBar\n }];\n};\nAuthService = __decorate([Injectable({\n providedIn: 'root'\n})], AuthService);\nexport { AuthService };","map":{"version":3,"names":["environment","Injectable","HttpClient","BehaviorSubject","Router","MatSnackBar","AlertMessageComponent","map","tap","jwt_decode","AuthService","constructor","http","router","snackBar","apiUrl","currentUserSubject","currentUser","asObservable","messageSource","currentMessage","tokenSubject","JSON","parse","localStorage","getItem","token","user_infoSubject","user_info","changeMessage","message","next","tokenValue","value","userValue","signIn","credentials","console","log","post","pipe","setItem","stringify","signInWithGoogle","get","user","signInAdmin","signUP","data","lostPassword","email","put","resetPassword","isLoggedIn","getCurrentUser","logout","removeItem","navigate","setTimeout","document","location","reload","getUserInfo","decodedToken","userId","openSnackBar","openFromComponent","panelClass","duration","_","__decorate","providedIn"],"sources":["C:\\FatboarProject\\angular-client\\src\\app\\services\\auth.service.ts"],"sourcesContent":["import { environment } from 'src/environments/environment';\r\nimport { User } from './../models/userResponse';\r\nimport { Token, payloadToken } from './../models/token';\r\nimport { Injectable } from '@angular/core';\r\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { BehaviorSubject, Observable, throwError } from 'rxjs';\r\nimport { Router } from '@angular/router';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { AlertMessageComponent } from 'src/app/components/shared/alert-message/alert-message.component'\r\nimport { catchError, map, tap } from 'rxjs/operators';\r\nimport * as jwt_decode from 'jwt-decode';\r\n\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class AuthService {\r\n\r\n //url api\r\n private apiUrl = environment.apiUrl\r\n\r\n private currentUserSubject: BehaviorSubject<User> = new BehaviorSubject<User>(null);\r\n public currentUser: Observable<User> = this.currentUserSubject.asObservable();\r\n\r\n \r\n\r\n\r\n private tokenSubject: BehaviorSubject<Token>;\r\n public token: Observable<Token>;\r\n\r\n private user_infoSubject: BehaviorSubject<User>;\r\n public user_info: Observable<User>;\r\n\r\n private messageSource = new BehaviorSubject('default message');\r\n currentMessage = this.messageSource.asObservable();\r\n\r\n constructor(private http: HttpClient, public router: Router, public snackBar: MatSnackBar) {\r\n\r\n this.tokenSubject = new BehaviorSubject<Token>(JSON.parse(localStorage.getItem('token')));\r\n this.token = this.tokenSubject.asObservable();\r\n\r\n this.user_infoSubject = new BehaviorSubject<User>(JSON.parse(localStorage.getItem('user')));\r\n this.user_info = this.user_infoSubject.asObservable();\r\n \r\n }\r\n\r\n changeMessage(message: string) {\r\n this.messageSource.next(message)\r\n }\r\n\r\n //get token\r\n public get tokenValue(): Token {\r\n return this.tokenSubject.value;\r\n }\r\n\r\n //get user Info\r\n public get userValue(): User {\r\n return this.user_infoSubject.value;\r\n }\r\n\r\n // login get token on login \r\n signIn(credentials): Observable<Token> {\r\n //debugger;\r\n console.log(\"url ========\",this.apiUrl);\r\n\r\n return this.http.post<Token>(`${this.apiUrl}/api/auth/login`, credentials)\r\n .pipe(map(token => {\r\n // store jwt token in local storage \r\n localStorage.setItem('token', JSON.stringify(token));\r\n this.tokenSubject.next(token);\r\n return token;\r\n }));\r\n }\r\n\r\n\r\n // Méthode pour s'authentifier avec Google\r\n signInWithGoogle(): Observable<User> {\r\n return this.http.get<User>(`${this.apiUrl}/api/auth/google`).pipe(\r\n map(user => {\r\n console.log('je suis present', user )\r\n localStorage.setItem('user', JSON.stringify(user));\r\n return user;\r\n })\r\n );\r\n }\r\n \r\n // signInWithGoogle(): Observable<string> {\r\n // return this.http.get<any>(`${this.apiUrl}/api/auth/google/callback`).pipe(\r\n // map(response => response.token),\r\n // catchError(error => {\r\n // console.log(error);\r\n // // Gérer l'erreur\r\n // throw error;\r\n // })\r\n // );\r\n // }\r\n // login get token on login admin\r\n signInAdmin(credentials): Observable<Token> {\r\n //debugger;\r\n console.log(\"url ========\",this.apiUrl);\r\n \r\n return this.http.post<Token>(`${this.apiUrl}/api/auth/admin`, credentials)\r\n .pipe(map(token => {\r\n // store jwt token in local storage \r\n localStorage.setItem('token', JSON.stringify(token));\r\n this.tokenSubject.next(token);\r\n return token;\r\n }));\r\n }\r\n\r\n\r\n\r\n // iscription get token on login \r\n signUP(data): Observable<Token> {\r\n\r\n return this.http.post<Token>(`${this.apiUrl}/api/auth/signup`, data)\r\n .pipe(map(token => {\r\n // store jwt token in local storage \r\n localStorage.setItem('token', JSON.stringify(token));\r\n this.tokenSubject.next(token);\r\n return token;\r\n }));\r\n }\r\n\r\n\r\n\r\n// mot de passe oublie \r\nlostPassword(email): Observable<any> {\r\n return this.http.put<any>(`${this.apiUrl}/api/auth/forgot-password`, email)\r\n}\r\n\r\n\r\n// réinitialiser mot de passe \r\nresetPassword(data): Observable<any> {\r\n return this.http.put<any>(`${this.apiUrl}/api/auth/reset-password`, data)\r\n}\r\n\r\n // isLoggedIn\r\n public isLoggedIn() {\r\n return localStorage.getItem('token') !== null;\r\n }\r\n\r\n getCurrentUser(): Observable<User> {\r\n return this.http.get<User>('/api/auth/user').pipe(\r\n tap((user) => {\r\n this.currentUserSubject.next(user);\r\n })\r\n );\r\n }\r\n\r\n //logout\r\n public logout() {\r\n // remove token from local storage \r\n localStorage.removeItem('token');\r\n this.tokenSubject.next(null);\r\n // remove user from local storage \r\n localStorage.removeItem('user');\r\n this.user_infoSubject.next(null);\r\n this.router.navigate(['/login']);\r\n setTimeout(() => {\r\n document.location.reload()\r\n },1000)\r\n }\r\n\r\n getUserInfo(): Observable<User> {\r\n let token = this.tokenSubject.value.token;\r\n if (token) {\r\n // User is authenticated locally\r\n let decodedToken: payloadToken = jwt_decode(token);\r\n return this.http.get<User>(`${this.apiUrl}/api/users/${decodedToken.userId}`).pipe(\r\n map(user => {\r\n // Store user info in local storage\r\n localStorage.setItem('user', JSON.stringify(user));\r\n this.user_infoSubject.next(user);\r\n return user;\r\n })\r\n );\r\n } else {\r\n // User is authenticated via Google\r\n return this.http.get<User>(`${this.apiUrl}/api/auth/google`).pipe(\r\n map(user => {\r\n // Store user info in local storage\r\n localStorage.setItem('user', JSON.stringify(user));\r\n this.user_infoSubject.next(user);\r\n return user;\r\n })\r\n );\r\n }\r\n }\r\n \r\n \r\n\r\n openSnackBar(message: string) {\r\n this.snackBar.openFromComponent(AlertMessageComponent, {\r\n data: message,\r\n panelClass: ['blue-snackbar'],\r\n duration: 10000\r\n });\r\n }\r\n\r\n\r\n}\r\n"],"mappings":"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"},"metadata":{},"sourceType":"module","externalDependencies":[]}
|