pos-be/src/auth/domain/services/auth.service.ts

38 lines
1.1 KiB
TypeScript

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<string> {
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<User[]> {
return this.userDataService.users();
}
}