feat: add ci cd files dont edit those files
This commit is contained in:
@@ -0,0 +1,321 @@
|
||||
const {Router} = require('express')
|
||||
const router = Router()
|
||||
const userController = require('../controllers/userController');
|
||||
const electionController = require('../controllers/electionController');
|
||||
|
||||
/**
|
||||
* @swagger
|
||||
* /auth/login:
|
||||
* post:
|
||||
* summary: User login
|
||||
* description: Allows users to log in with their username or email and password.
|
||||
* tags:
|
||||
* - Auth
|
||||
* requestBody:
|
||||
* required: true
|
||||
* content:
|
||||
* application/json:
|
||||
* schema:
|
||||
* type: object
|
||||
* properties:
|
||||
* username:
|
||||
* type: string
|
||||
* password:
|
||||
* type: string
|
||||
* remember_me:
|
||||
* type: boolean
|
||||
* example:
|
||||
* username: johndoe
|
||||
* password: password123
|
||||
* remember_me: true
|
||||
* responses:
|
||||
* '200':
|
||||
* description: User logged in successfully.
|
||||
* content:
|
||||
* application/json:
|
||||
* schema:
|
||||
* type: object
|
||||
* properties:
|
||||
* token:
|
||||
* type: string
|
||||
* example:
|
||||
* token: "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..."
|
||||
* '401':
|
||||
* description: Unauthorized. Indicates that the provided credentials are invalid.
|
||||
* '403':
|
||||
* description: Forbidden. Indicates that the account is inactive. Contact the admin for assistance.
|
||||
* '422':
|
||||
* description: Validation error. Indicates that the request body contains invalid data.
|
||||
*/
|
||||
// Login User
|
||||
router.post('/login', userController.login);
|
||||
/**
|
||||
* @swagger
|
||||
* /auth/logout:
|
||||
* delete:
|
||||
* summary: User logout
|
||||
* description: Logs out the user by invalidating the token associated with the request.
|
||||
* tags:
|
||||
* - Auth
|
||||
* responses:
|
||||
* '200':
|
||||
* description: User logged out successfully.
|
||||
* content:
|
||||
* application/json:
|
||||
* schema:
|
||||
* type: object
|
||||
* properties:
|
||||
* message:
|
||||
* type: string
|
||||
* example:
|
||||
* message: "You are logged out."
|
||||
* '401':
|
||||
* description: Unauthorized. Indicates that the user is not logged in.
|
||||
*/
|
||||
// Logout User
|
||||
router.delete('/logout', userController.logout);
|
||||
/**
|
||||
* @swagger
|
||||
* /auth/user:
|
||||
* get:
|
||||
* summary: Get user information
|
||||
* description: Retrieves information about the authenticated user.
|
||||
* tags:
|
||||
* - Auth
|
||||
* responses:
|
||||
* '200':
|
||||
* description: User information retrieved successfully.
|
||||
* content:
|
||||
* application/json:
|
||||
* schema:
|
||||
* type: object
|
||||
* properties:
|
||||
* user:
|
||||
* $ref: '#/components/schemas/User'
|
||||
* '401':
|
||||
* description: Unauthorized. Indicates that the user is not authenticated or the token is invalid.
|
||||
*/
|
||||
// Data User
|
||||
router.get('/user', userController.getuser);
|
||||
/**
|
||||
* @swagger
|
||||
* /auth/forget-password:
|
||||
* post:
|
||||
* summary: Generate token for password reset
|
||||
* description: Sends a token to the user's email for password reset.
|
||||
* tags:
|
||||
* - Auth
|
||||
* requestBody:
|
||||
* required: true
|
||||
* content:
|
||||
* application/json:
|
||||
* schema:
|
||||
* type: object
|
||||
* properties:
|
||||
* email:
|
||||
* type: string
|
||||
* responses:
|
||||
* '200':
|
||||
* description: Token generated successfully and sent to the user's email.
|
||||
* content:
|
||||
* application/json:
|
||||
* schema:
|
||||
* type: string
|
||||
* description: Token generated for password reset.
|
||||
* '422':
|
||||
* description: Validation error. Indicates that the provided email is not valid.
|
||||
* content:
|
||||
* application/json:
|
||||
* schema:
|
||||
* type: object
|
||||
* properties:
|
||||
* validation:
|
||||
* type: object
|
||||
* description: Error messages for validation failures.
|
||||
* '404':
|
||||
* description: User not found. Indicates that the provided email does not belong to any user.
|
||||
* content:
|
||||
* application/json:
|
||||
* schema:
|
||||
* type: object
|
||||
* properties:
|
||||
* message:
|
||||
* type: string
|
||||
* description: Error message indicating that the user was not found.
|
||||
* '500':
|
||||
* description: Internal server error. Indicates that an unexpected error occurred.
|
||||
* content:
|
||||
* application/json:
|
||||
* schema:
|
||||
* type: object
|
||||
* properties:
|
||||
* message:
|
||||
* type: string
|
||||
* description: Error message indicating the internal server error.
|
||||
*/
|
||||
// Change Password
|
||||
router.post('/changePassword' , userController.forgetPassGenerateToken);
|
||||
/**
|
||||
* @swagger
|
||||
* /auth/changePassword/{token}:
|
||||
* put:
|
||||
* summary: Reset password using token
|
||||
* description: Resets the user's password using the provided token.
|
||||
* tags:
|
||||
* - Auth
|
||||
* parameters:
|
||||
* - in: path
|
||||
* name: token
|
||||
* required: true
|
||||
* description: The token sent to the user's email for password reset.
|
||||
* schema:
|
||||
* type: string
|
||||
* requestBody:
|
||||
* required: true
|
||||
* content:
|
||||
* application/json:
|
||||
* schema:
|
||||
* type: object
|
||||
* properties:
|
||||
* password:
|
||||
* type: string
|
||||
* description: The new password.
|
||||
* responses:
|
||||
* '200':
|
||||
* description: Password reset successful.
|
||||
* content:
|
||||
* application/json:
|
||||
* schema:
|
||||
* type: object
|
||||
* properties:
|
||||
* message:
|
||||
* type: string
|
||||
* description: Success message indicating that the password was reset successfully.
|
||||
* '422':
|
||||
* description: Validation error. Indicates that the provided password does not meet the requirements or the passwords do not match.
|
||||
* content:
|
||||
* application/json:
|
||||
* schema:
|
||||
* type: object
|
||||
* properties:
|
||||
* validation:
|
||||
* type: object
|
||||
* description: Error messages for validation failures.
|
||||
* '500':
|
||||
* description: Internal server error. Indicates that an unexpected error occurred.
|
||||
* content:
|
||||
* application/json:
|
||||
* schema:
|
||||
* type: object
|
||||
* properties:
|
||||
* message:
|
||||
* type: string
|
||||
* description: Error message indicating the internal server error.
|
||||
*/
|
||||
// Change Password :token param
|
||||
router.put('/changePassword/:token' , userController.forgetPassGetToken);
|
||||
|
||||
///////// voter
|
||||
|
||||
/**
|
||||
* @swagger
|
||||
* /auth/voter/login:
|
||||
* post:
|
||||
* summary: Voter login
|
||||
* description: Logs in a voter to participate in an election.
|
||||
* tags:
|
||||
* - Auth
|
||||
* requestBody:
|
||||
* required: true
|
||||
* content:
|
||||
* application/json:
|
||||
* schema:
|
||||
* type: object
|
||||
* properties:
|
||||
* username:
|
||||
* type: string
|
||||
* description: The username of the voter.
|
||||
* password:
|
||||
* type: string
|
||||
* description: The password of the voter.
|
||||
* responses:
|
||||
* '200':
|
||||
* description: Voter login successful.
|
||||
* content:
|
||||
* application/json:
|
||||
* schema:
|
||||
* type: object
|
||||
* properties:
|
||||
* token:
|
||||
* type: string
|
||||
* description: The token associated with the voter.
|
||||
* '422':
|
||||
* description: Validation error. Indicates that the provided username or password is incorrect.
|
||||
* content:
|
||||
* application/json:
|
||||
* schema:
|
||||
* type: object
|
||||
* properties:
|
||||
* validation:
|
||||
* type: object
|
||||
* description: Error message for validation failure.
|
||||
* '500':
|
||||
* description: Internal server error. Indicates that an unexpected error occurred.
|
||||
* content:
|
||||
* application/json:
|
||||
* schema:
|
||||
* type: object
|
||||
* properties:
|
||||
* message:
|
||||
* type: string
|
||||
* description: Error message indicating the internal server error.
|
||||
*/
|
||||
|
||||
//Voter Login
|
||||
router.post('/voter/login' , electionController.voterLogin);
|
||||
/**
|
||||
* @swagger
|
||||
* /auth/voter/user:
|
||||
* get:
|
||||
* summary: Get voter user
|
||||
* description: Retrieves the details of the logged-in voter.
|
||||
* tags:
|
||||
* - Auth
|
||||
* security:
|
||||
* - BearerAuth: []
|
||||
* responses:
|
||||
* '200':
|
||||
* description: Voter user details retrieved successfully.
|
||||
* content:
|
||||
* application/json:
|
||||
* schema:
|
||||
* type: object
|
||||
* properties:
|
||||
* user:
|
||||
* type: object
|
||||
* description: Details of the logged-in voter.
|
||||
* '422':
|
||||
* description: Validation error. Indicates that the token is invalid or the voter does not exist.
|
||||
* content:
|
||||
* application/json:
|
||||
* schema:
|
||||
* type: object
|
||||
* properties:
|
||||
* validation:
|
||||
* type: object
|
||||
* description: Error message for validation failure.
|
||||
* '500':
|
||||
* description: Internal server error. Indicates that an unexpected error occurred.
|
||||
* content:
|
||||
* application/json:
|
||||
* schema:
|
||||
* type: object
|
||||
* properties:
|
||||
* message:
|
||||
* type: string
|
||||
* description: Error message indicating the internal server error.
|
||||
*/
|
||||
// user Voter Data
|
||||
router.get('/voter/user' , electionController.getVoterUser);
|
||||
|
||||
module.exports = router
|
||||
Reference in New Issue
Block a user