+++ /dev/null
-import { Injectable } from '@angular/core';
-import { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http';
-import { BehaviorSubject, Observable } from 'rxjs';
-import { map } from 'rxjs/operators';
-import { User } from '../_models/user';
-
-@Injectable({
- providedIn: 'root'
-})
-export class AuthenticationService {
-
- private currentUserSubject: BehaviorSubject<User>;
- public currentUser: Observable<User>;
-
- private baseUrl = 'http://localhost:8080/';
- private captchaUrl = this.baseUrl+'capchaverify';
-
- constructor(private http: HttpClient) {
- this.currentUserSubject = new BehaviorSubject<User>(JSON.parse(localStorage.getItem('currentUser')));
- this.currentUser = this.currentUserSubject.asObservable();
- }
-
- httpOptions = {
- headers: new HttpHeaders({
- 'Content-Type':'application/json'
- })
- }
-
- public get currentUserValue(): User {
- return this.currentUserSubject.value;
- }
-
- login(email: string, password: string) {
- return this.http.post<any>(`auth/login`, { email, password })
- // .subscribe(user => {
- .pipe(map(user => {
- if (user && user.token) {
- // store user details in local storage to keep user logged in
- localStorage.setItem('currentUser', JSON.stringify(user.result));
- sessionStorage.setItem('roleName',user.roleName);
- this.currentUserSubject.next(user);
- }
-
- return user;
- }));
- }
-
- logout() {
- // remove user data from local storage for log out
- localStorage.removeItem('currentUser');
- this.currentUserSubject.next(null);
- }
-
- send(data): Observable<any> {
- return this.http.post<any>(this.captchaUrl,data,this.httpOptions);
- }
-
-}