44 lines
1.4 KiB
TypeScript
44 lines
1.4 KiB
TypeScript
import { Controller, Post, Body, Get, Param } from '@nestjs/common';
|
|
|
|
import {
|
|
BookingVerificationDto,
|
|
VerificationCodeDto,
|
|
} from '../dto/booking-verification.dto';
|
|
import { VerificationService } from '../../data/services/verification.service';
|
|
import { Public } from 'src/core/guards/domain/decorators/unprotected.guard';
|
|
import { ApiTags } from '@nestjs/swagger';
|
|
|
|
@ApiTags('Booking Authentication')
|
|
@Public()
|
|
@Controller('booking-authentication')
|
|
export class BookingAuthenticationController {
|
|
constructor(
|
|
private readonly bookingAuthenticationService: VerificationService,
|
|
) {}
|
|
|
|
@Post('verify')
|
|
async verify(@Body() body: VerificationCodeDto) {
|
|
const verification = await this.bookingAuthenticationService.verify(body);
|
|
const token = await this.bookingAuthenticationService.generateToken(
|
|
verification,
|
|
);
|
|
return {
|
|
message: `Verification successful for ${verification.phone_number}`,
|
|
token,
|
|
};
|
|
}
|
|
|
|
@Post('register')
|
|
async register(@Body() body: BookingVerificationDto) {
|
|
const verification = await this.bookingAuthenticationService.register(body);
|
|
return {
|
|
message: `Verification code sent to ${verification.phone_number}`,
|
|
};
|
|
}
|
|
|
|
@Get('get-by-phone/:phone_number')
|
|
async getByPhoneNumber(@Param('phone_number') phone_number: string) {
|
|
return this.bookingAuthenticationService.findByPhoneNumber(phone_number);
|
|
}
|
|
}
|