Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | 1x 1x 1x | import { UserEntity } from "@/modules/shared/database/entities";
import { Services } from "@/types/Constants";
import { Inject, Injectable } from "@nestjs/common";
import { JwtService } from "@nestjs/jwt";
import { IUserService } from "../user/interfaces/IUserService";
import { UserDTO } from "../user/user.dto";
import { IAuthService } from "./interfaces/IAuthService.interface";
import { JwtPayload } from "./types";
@Injectable()
export class AuthService implements IAuthService {
public constructor(
@Inject(Services.User) private readonly userService: IUserService,
private readonly jwtService: JwtService,
) {}
public async validateUser(details: UserDTO): Promise<UserEntity> {
const user = await this.userService.get(details.id);
return user ? await this.userService.update(details) : ((await this.userService.create(details)) as UserEntity);
}
public async get(payload: JwtPayload) {
const user = await this.userService.get(payload.id);
return user;
}
public async login(payload: JwtPayload): Promise<string> {
const token = await this.jwtService.signAsync({ payload });
return token;
}
}
|