import { Injectable } from '@angular/core'; import { Observable } from 'rxjs'; import { mergeMap } from 'rxjs/operators'; import { Account } from 'app/core/auth/account.model'; import { AccountService } from 'app/core/auth/account.service'; import { AuthServerProvider } from 'app/core/auth/auth-jwt.service'; import { Login } from './login.model'; @Injectable({ providedIn: 'root' }) export class LoginService { constructor(private accountService: AccountService, private authServerProvider: AuthServerProvider) {} login(credentials: Login): Observable { return this.authServerProvider.login(credentials).pipe(mergeMap(() => this.accountService.identity(true))); } logout(): void { this.authServerProvider.logout().subscribe({ complete: () => this.accountService.authenticate(null) }); } }