mirror of
https://github.com/HamzaSha1/zod-backend.git
synced 2025-08-26 06:09:41 +00:00
refactor: refactor the code
This commit is contained in:
@ -13,8 +13,6 @@ import { User } from '../../user/entities';
|
||||
import {
|
||||
ChangePasswordRequestDto,
|
||||
CreateUnverifiedUserRequestDto,
|
||||
DisableBiometricRequestDto,
|
||||
EnableBiometricRequestDto,
|
||||
ForgetPasswordRequestDto,
|
||||
LoginRequestDto,
|
||||
SendForgetPasswordOtpRequestDto,
|
||||
@ -24,7 +22,6 @@ import {
|
||||
} from '../dtos/request';
|
||||
import { Roles } from '../enums';
|
||||
import { IJwtPayload, ILoginResponse } from '../interfaces';
|
||||
import { Oauth2Service } from './oauth2.service';
|
||||
|
||||
const ONE_THOUSAND = 1000;
|
||||
const SALT_ROUNDS = 10;
|
||||
@ -40,7 +37,6 @@ export class AuthService {
|
||||
private readonly deviceService: DeviceService,
|
||||
private readonly userTokenService: UserTokenService,
|
||||
private readonly cacheService: CacheService,
|
||||
private readonly oauth2Service: Oauth2Service,
|
||||
) {}
|
||||
|
||||
async sendRegisterOtp(body: CreateUnverifiedUserRequestDto) {
|
||||
@ -100,43 +96,6 @@ export class AuthService {
|
||||
return [tokens, user];
|
||||
}
|
||||
|
||||
async enableBiometric(userId: string, { deviceId, publicKey }: EnableBiometricRequestDto) {
|
||||
this.logger.log(`Enabling biometric for user with id ${userId}`);
|
||||
const device = await this.deviceService.findUserDeviceById(deviceId, userId);
|
||||
|
||||
if (!device) {
|
||||
this.logger.log(`Device not found, creating new device for user with id ${userId}`);
|
||||
return this.deviceService.createDevice({
|
||||
deviceId,
|
||||
userId,
|
||||
publicKey,
|
||||
});
|
||||
}
|
||||
|
||||
if (device.publicKey) {
|
||||
this.logger.error(`Biometric already enabled for user with id ${userId}`);
|
||||
throw new BadRequestException('AUTH.BIOMETRIC_ALREADY_ENABLED');
|
||||
}
|
||||
|
||||
return this.deviceService.updateDevice(deviceId, { publicKey });
|
||||
}
|
||||
|
||||
async disableBiometric(userId: string, { deviceId }: DisableBiometricRequestDto) {
|
||||
const device = await this.deviceService.findUserDeviceById(deviceId, userId);
|
||||
|
||||
if (!device) {
|
||||
this.logger.error(`Device not found for user with id ${userId} and device id ${deviceId}`);
|
||||
throw new BadRequestException('AUTH.DEVICE_NOT_FOUND');
|
||||
}
|
||||
|
||||
if (!device.publicKey) {
|
||||
this.logger.error(`Biometric already disabled for user with id ${userId}`);
|
||||
throw new BadRequestException('AUTH.BIOMETRIC_ALREADY_DISABLED');
|
||||
}
|
||||
|
||||
return this.deviceService.updateDevice(deviceId, { publicKey: null });
|
||||
}
|
||||
|
||||
async sendForgetPasswordOtp({ countryCode, phoneNumber }: SendForgetPasswordOtpRequestDto) {
|
||||
this.logger.log(`Sending forget password OTP to ${countryCode + phoneNumber}`);
|
||||
const user = await this.userService.findUserOrThrow({ countryCode, phoneNumber });
|
||||
@ -319,40 +278,6 @@ export class AuthService {
|
||||
return [tokens, user];
|
||||
}
|
||||
|
||||
// private async loginWithBiometric(loginDto: LoginRequestDto, deviceId: string): Promise<[ILoginResponse, User]> {
|
||||
// const user = await this.userService.findUserOrThrow({ email: loginDto.email });
|
||||
|
||||
// this.logger.log(`validating biometric for user with email ${loginDto.email}`);
|
||||
// const device = await this.deviceService.findUserDeviceById(deviceId, user.id);
|
||||
|
||||
// if (!device) {
|
||||
// this.logger.error(`Device not found for user with email ${loginDto.email} and device id ${deviceId}`);
|
||||
// throw new UnauthorizedException('AUTH.DEVICE_NOT_FOUND');
|
||||
// }
|
||||
|
||||
// if (!device.publicKey) {
|
||||
// this.logger.error(`Biometric not enabled for user with email ${loginDto.email}`);
|
||||
// throw new UnauthorizedException('AUTH.BIOMETRIC_NOT_ENABLED');
|
||||
// }
|
||||
|
||||
// const cleanToken = removePadding(loginDto.signature);
|
||||
// const isValidToken = await verifySignature(
|
||||
// device.publicKey,
|
||||
// cleanToken,
|
||||
// `${user.email} - ${device.deviceId}`,
|
||||
// 'SHA1',
|
||||
// );
|
||||
|
||||
// if (!isValidToken) {
|
||||
// this.logger.error(`Invalid biometric for user with email ${loginDto.email}`);
|
||||
// throw new UnauthorizedException('AUTH.INVALID_BIOMETRIC');
|
||||
// }
|
||||
|
||||
// const tokens = await this.generateAuthToken(user);
|
||||
// this.logger.log(`Biometric validated successfully for user with email ${loginDto.email}`);
|
||||
// return [tokens, user];
|
||||
// }
|
||||
|
||||
private async generateAuthToken(user: User) {
|
||||
this.logger.log(`Generating auth token for user with id ${user.id}`);
|
||||
const [accessToken, refreshToken] = await Promise.all([
|
||||
|
Reference in New Issue
Block a user