modify otp
This commit is contained in:
@@ -1,5 +1,6 @@
|
|||||||
import { IsNotEmpty, IsString, IsMobilePhone } from 'class-validator';
|
import { IsNotEmpty, IsString, IsMobilePhone } from 'class-validator';
|
||||||
import { ApiProperty } from '@nestjs/swagger';
|
import { ApiProperty } from '@nestjs/swagger';
|
||||||
|
import { Transform } from 'class-transformer';
|
||||||
|
|
||||||
export class RequestOtpDto {
|
export class RequestOtpDto {
|
||||||
@IsNotEmpty()
|
@IsNotEmpty()
|
||||||
@@ -10,6 +11,7 @@ export class RequestOtpDto {
|
|||||||
|
|
||||||
@IsNotEmpty()
|
@IsNotEmpty()
|
||||||
@IsString()
|
@IsString()
|
||||||
|
@Transform(({ value }) => value?.toLowerCase())
|
||||||
@ApiProperty({ example: 'zhivan', description: 'restaurant slug' })
|
@ApiProperty({ example: 'zhivan', description: 'restaurant slug' })
|
||||||
slug: string;
|
slug: string;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
import { IsNotEmpty, IsString, Length, IsMobilePhone } from 'class-validator';
|
import { IsNotEmpty, IsString, Length, IsMobilePhone } from 'class-validator';
|
||||||
import { ApiProperty } from '@nestjs/swagger';
|
import { ApiProperty } from '@nestjs/swagger';
|
||||||
|
import { Transform } from 'class-transformer';
|
||||||
|
|
||||||
export class VerifyOtpDto {
|
export class VerifyOtpDto {
|
||||||
@IsNotEmpty()
|
@IsNotEmpty()
|
||||||
@@ -16,6 +17,7 @@ export class VerifyOtpDto {
|
|||||||
|
|
||||||
@IsNotEmpty()
|
@IsNotEmpty()
|
||||||
@IsString()
|
@IsString()
|
||||||
|
@Transform(({ value }) => value?.toLowerCase())
|
||||||
@ApiProperty({ example: 'zhivan', description: 'restaurant slug' })
|
@ApiProperty({ example: 'zhivan', description: 'restaurant slug' })
|
||||||
slug: string;
|
slug: string;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -40,6 +40,13 @@ export class AuthService {
|
|||||||
async requestOtp(dto: RequestOtpDto, isAdmin: boolean) {
|
async requestOtp(dto: RequestOtpDto, isAdmin: boolean) {
|
||||||
const { phone, slug } = dto;
|
const { phone, slug } = dto;
|
||||||
const normalizedPhone = normalizePhone(phone);
|
const normalizedPhone = normalizePhone(phone);
|
||||||
|
|
||||||
|
if (isAdmin) {
|
||||||
|
const admin = await this.adminRepository.findByPhoneAndRestaurantSlug(normalizedPhone, slug);
|
||||||
|
if (!admin) {
|
||||||
|
throw new BadRequestException(AuthMessage.ADMIN_NOT_FOUND);
|
||||||
|
}
|
||||||
|
}
|
||||||
const code = this.generateOtpCode();
|
const code = this.generateOtpCode();
|
||||||
const key = isAdmin ? this.adminOtpKey(slug, normalizedPhone) : this.userOtpKey(slug, normalizedPhone);
|
const key = isAdmin ? this.adminOtpKey(slug, normalizedPhone) : this.userOtpKey(slug, normalizedPhone);
|
||||||
await this.cacheService.set(key, code, this.OTP_EXPIRATION_TIME);
|
await this.cacheService.set(key, code, this.OTP_EXPIRATION_TIME);
|
||||||
|
|||||||
Reference in New Issue
Block a user