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-26 12:48:10 +00:00

88 lines
2.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";
import { RegisterUserRequest, RegisterUserResponse } from "../models/register-user-request.model";
import { ConfirmRegistrationRequest, ConfirmRegistrationResponse } from "../models/confirm-registration-request.model";
@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;
}
register(body: RegisterUserRequest): RegisterUserResponse|null {
let result = null;
this.requestService.post(
'auth/register-user',
body,
(response: LoginResponse) => {
result = response;
this.readUserState();
}
);
return result;
}
confirmRegistration(body: ConfirmRegistrationRequest): ConfirmRegistrationResponse|null {
let result = null;
this.requestService.post(
'auth/confirm-registration',
body,
(response: LoginResponse) => {
result = response;
this.readUserState();
}
);
return result;
}
logout(): void {
this.requestService.post(
'auth/logout-user',
{},
(response: any) => {
this.readUserState();
}
);
}
}