import { Injectable, UnprocessableEntityException } from '@nestjs/common'; import { SessionService, UserProvider, UsersSession } from 'src/core/sessions'; import { UserDataService } from '../../data/user.dataservice'; import { LoginRequest } from '../entities/request.interface'; import { User } from '../entities/user.interface'; @Injectable() export class AuthService { constructor( private readonly userDataService: UserDataService, private readonly session: SessionService, private readonly user: UserProvider, ) {} async createAccessToken(payload: LoginRequest): Promise { const user = await this.userDataService.login(payload); if (!user) throw new UnprocessableEntityException(`Username or Password not match`); const token = this.session.createAccessToken({ id: user.id, // username: user.username, name: user.name, // roles: user.roles, }); return token; } getUser(): UsersSession { return this.user.user; } async getUsers(): Promise { return this.userDataService.users(); } }