This repository has been archived on 2025-04-11. You can view files and clone it, but cannot push or open issues or pull requests.
bee-frontend-ARCHIVED/src/app/core/services/auth.service.ts
2024-08-25 20:42:39 +00:00

56 lines
1.4 KiB
TypeScript

import { Injectable } from "@angular/core";
import { RequestService } from "./request.service";
import { UserStateResponse } from "../models/user-state-request.model";
import { BehaviorSubject, Observable } from "rxjs";
import { LoginRequest, LoginResponse } from "../models/login-request.model copy";
import { Router } from "@angular/router";
@Injectable()
export class AuthService {
currentState$ = new BehaviorSubject<UserStateResponse | null | undefined>(undefined);
constructor(
private requestService: RequestService,
private router: Router
) {
}
readUserState(): void {
this.requestService.get(
'user/state',
{},
(response: UserStateResponse) => {
this.currentState$.next(response);
},
() => {
this.currentState$.next(undefined);
}
)
}
login(body: LoginRequest): LoginResponse|null {
let result = null;
this.requestService.post(
'auth/login-user',
body,
(response: LoginResponse) => {
result = response;
this.readUserState();
}
);
return result;
}
logout(): void {
this.requestService.post(
'auth/logout-user',
{},
(response: any) => {
this.readUserState();
}
);
}
}