Spaces:
Runtime error
Runtime error
import express from "express"; | |
import { validateLogin } from "../validators/login.validator"; | |
import { forgotPassword, login, resetPassword, changePassword } from "../controllers/auth.controller"; | |
import { handleValidationErrors } from "../middlewares/handleValidatorError"; | |
import { validateForgotPassword } from "../validators/forgotPassword.validator"; | |
import { validateResetPassword } from "../validators/resetPassword.validator"; | |
import { jwtMiddleware } from "../middlewares/authMiddleware"; | |
const authRouter = express.Router(); | |
/** | |
* @swagger | |
* components: | |
* schemas: | |
* jwt: | |
* type: object | |
* properties: | |
* token: | |
* type: string | |
* description: JWT token | |
* example: | |
* token : xyz | |
* | |
*/ | |
/** | |
* @swagger | |
* /api/login: | |
* post: | |
* summary: User login | |
* tags: [Authentication] | |
* requestBody: | |
* required: true | |
* content: | |
* application/json: | |
* schema: | |
* type: object | |
* properties: | |
* email: | |
* type: string | |
* password: | |
* type: string | |
* responses: | |
* 200: | |
* description: User authenticated successfully | |
* content: | |
* application/json: | |
* schema: | |
* $ref: '#/components/schemas/jwt' | |
* 401: | |
* description: Invalid Credentials | |
* 403: | |
* description: Forbidden | |
* 500: | |
* description: Internal server error | |
*/ | |
authRouter.post("/login", validateLogin, handleValidationErrors, login); | |
/** | |
* @swagger | |
* /api/auth/forgot-password: | |
* post: | |
* summary: Request password reset | |
* tags: [Authentication] | |
* requestBody: | |
* required: true | |
* content: | |
* application/json: | |
* schema: | |
* type: object | |
* properties: | |
* email: | |
* type: string | |
* responses: | |
* 200: | |
* description: Password reset email sent successfully | |
* 404: | |
* description: User not found | |
* 500: | |
* description: Internal server error | |
*/ | |
authRouter.post("/auth/forgot-password", validateForgotPassword, handleValidationErrors, forgotPassword); | |
/** | |
* @swagger | |
* /api/auth/reset-password: | |
* post: | |
* summary: Reset user password | |
* tags: [Authentication] | |
* requestBody: | |
* required: true | |
* content: | |
* application/json: | |
* schema: | |
* type: object | |
* properties: | |
* token: | |
* type: string | |
* description: Reset token received via email | |
* newPassword: | |
* type: string | |
* description: New password to set | |
* responses: | |
* 200: | |
* description: Password reset successfully | |
* 400: | |
* description: Invalid or expired token | |
* 404: | |
* description: User not found | |
* 500: | |
* description: Internal server error | |
*/ | |
authRouter.post("/auth/reset-password", validateResetPassword, handleValidationErrors, resetPassword); | |
/** | |
* @swagger | |
* /api/auth/change-password: | |
* post: | |
* summary: Change the current user's password | |
* tags: [Auth] | |
* requestBody: | |
* required: true | |
* content: | |
* application/json: | |
* schema: | |
* type: object | |
* required: | |
* - currentPassword | |
* - newPassword | |
* - confirmPassword | |
* properties: | |
* currentPassword: | |
* type: string | |
* description: The current password of the user | |
* newPassword: | |
* type: string | |
* description: The new password to be set | |
* confirmPassword: | |
* type: string | |
* description: Confirmation of the new password | |
* responses: | |
* 200: | |
* description: Password changed successfully | |
* 400: | |
* description: Validation errors or incorrect current password | |
* 401: | |
* description: Unauthorized, user not authenticated | |
* 500: | |
* description: Internal server error | |
*/ | |
authRouter.post('/auth/change-password', jwtMiddleware, changePassword); | |
export default authRouter; | |