| 1 |
- {"ast":null,"code":"import { environment } from 'src/environments/environment';\nimport { BehaviorSubject } from 'rxjs';\nimport { AlertMessageComponent } from 'src/app/components/shared/alert-message/alert-message.component';\nimport { map, tap } from 'rxjs/operators';\nimport jwt_decode from 'jwt-decode';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/common/http\";\nimport * as i2 from \"@angular/router\";\nimport * as i3 from \"@angular/material/snack-bar\";\nexport let AuthService = /*#__PURE__*/(() => {\n 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.ɵfac = function AuthService_Factory(t) {\n return new (t || AuthService)(i0.ɵɵinject(i1.HttpClient), i0.ɵɵinject(i2.Router), i0.ɵɵinject(i3.MatSnackBar));\n };\n static #_2 = this.ɵprov = /*@__PURE__*/i0.ɵɵdefineInjectable({\n token: AuthService,\n factory: AuthService.ɵfac,\n providedIn: 'root'\n });\n }\n return AuthService;\n})();","map":null,"metadata":{},"sourceType":"module","externalDependencies":[]}
|