From f1da846bb5e9311e1829419eb1e4642ce82c63be Mon Sep 17 00:00:00 2001 From: faris Aljohari <83524184+farisaljohari@users.noreply.github.com> Date: Sat, 23 Nov 2024 22:50:02 -0600 Subject: [PATCH] Enhance Swagger Documentation in UserAuthController --- src/auth/controllers/user-auth.controller.ts | 41 +++++++++++++++++--- 1 file changed, 36 insertions(+), 5 deletions(-) diff --git a/src/auth/controllers/user-auth.controller.ts b/src/auth/controllers/user-auth.controller.ts index e7074da..616f4ad 100644 --- a/src/auth/controllers/user-auth.controller.ts +++ b/src/auth/controllers/user-auth.controller.ts @@ -10,7 +10,7 @@ import { } from '@nestjs/common'; import { UserAuthService } from '../services/user-auth.service'; import { UserSignUpDto } from '../dtos/user-auth.dto'; -import { ApiBearerAuth, ApiTags } from '@nestjs/swagger'; +import { ApiBearerAuth, ApiOperation, ApiTags } from '@nestjs/swagger'; import { ResponseMessage } from '../../../libs/common/src/response/response.decorator'; import { UserLoginDto } from '../dtos/user-login.dto'; import { ForgetPasswordDto, UserOtpDto, VerifyOtpDto } from '../dtos'; @@ -18,17 +18,22 @@ import { RefreshTokenGuard } from '@app/common/guards/jwt-refresh.auth.guard'; import { SuperAdminRoleGuard } from 'src/guards/super.admin.role.guard'; import { EnableDisableStatusEnum } from '@app/common/constants/days.enum'; import { OtpType } from '@app/common/constants/otp-type.enum'; +import { ControllerRoute } from '@app/common/constants/controller-route'; @Controller({ version: EnableDisableStatusEnum.ENABLED, - path: 'authentication', + path: ControllerRoute.AUTHENTICATION.ROUTE, }) -@ApiTags('Auth') +@ApiTags('Authentication Module') export class UserAuthController { constructor(private readonly userAuthService: UserAuthService) {} @ResponseMessage('User Registered Successfully') @Post('user/signup') + @ApiOperation({ + summary: ControllerRoute.AUTHENTICATION.ACTIONS.SIGN_UP_SUMMARY, + description: ControllerRoute.AUTHENTICATION.ACTIONS.SIGN_UP_DESCRIPTION, + }) async signUp(@Body() userSignUpDto: UserSignUpDto) { const signupUser = await this.userAuthService.signUp(userSignUpDto); return { @@ -41,8 +46,12 @@ export class UserAuthController { }; } - @ResponseMessage('user logged in successfully') + @ResponseMessage('User Logged in Successfully') @Post('user/login') + @ApiOperation({ + summary: ControllerRoute.AUTHENTICATION.ACTIONS.LOGIN_SUMMARY, + description: ControllerRoute.AUTHENTICATION.ACTIONS.LOGIN_DESCRIPTION, + }) async userLogin(@Body() data: UserLoginDto) { const accessToken = await this.userAuthService.userLogin(data); return { @@ -53,6 +62,10 @@ export class UserAuthController { } @Post('user/send-otp') + @ApiOperation({ + summary: ControllerRoute.AUTHENTICATION.ACTIONS.SEND_OTP_SUMMARY, + description: ControllerRoute.AUTHENTICATION.ACTIONS.SEND_OTP_DESCRIPTION, + }) async sendOtp(@Body() otpDto: UserOtpDto) { const otpCode = await this.userAuthService.generateOTP(otpDto); return { @@ -60,11 +73,15 @@ export class UserAuthController { data: { ...otpCode, }, - message: 'Otp Send Successfully', + message: 'Otp Sent Successfully', }; } @Post('user/verify-otp') + @ApiOperation({ + summary: ControllerRoute.AUTHENTICATION.ACTIONS.VERIFY_OTP_SUMMARY, + description: ControllerRoute.AUTHENTICATION.ACTIONS.VERIFY_OTP_DESCRIPTION, + }) async verifyOtp(@Body() verifyOtpDto: VerifyOtpDto) { await this.userAuthService.verifyOTP(verifyOtpDto); return { @@ -75,6 +92,11 @@ export class UserAuthController { } @Post('user/forget-password') + @ApiOperation({ + summary: ControllerRoute.AUTHENTICATION.ACTIONS.FORGET_PASSWORD_SUMMARY, + description: + ControllerRoute.AUTHENTICATION.ACTIONS.FORGET_PASSWORD_DESCRIPTION, + }) async forgetPassword(@Body() forgetPasswordDto: ForgetPasswordDto) { const otpResult = await this.userAuthService.verifyOTP( { @@ -102,6 +124,10 @@ export class UserAuthController { @ApiBearerAuth() @UseGuards(SuperAdminRoleGuard) @Get('user') + @ApiOperation({ + summary: ControllerRoute.AUTHENTICATION.ACTIONS.USER_LIST_SUMMARY, + description: ControllerRoute.AUTHENTICATION.ACTIONS.USER_LIST_DESCRIPTION, + }) async userList() { const userList = await this.userAuthService.userList(); return { @@ -114,6 +140,11 @@ export class UserAuthController { @ApiBearerAuth() @UseGuards(RefreshTokenGuard) @Get('refresh-token') + @ApiOperation({ + summary: ControllerRoute.AUTHENTICATION.ACTIONS.REFRESH_TOKEN_SUMMARY, + description: + ControllerRoute.AUTHENTICATION.ACTIONS.REFRESH_TOKEN_DESCRIPTION, + }) async refreshToken(@Req() req) { const refreshToken = await this.userAuthService.refreshToken( req.user.uuid,