diff --git a/backend/config/swagger/swagger.js b/backend/config/swagger/swagger.js index bf23914..aabf7fb 100644 --- a/backend/config/swagger/swagger.js +++ b/backend/config/swagger/swagger.js @@ -13,8 +13,22 @@ const options = { { url: process.env.API_DOMAIN, description: 'Servidor' + }, + + ], + components: { + securitySchemes: { + basicAuth: { + type: 'http', + scheme: 'basic', + }, + }, + }, + security: [ + { + basicAuth: [] } - ] + ], }, apis: ['./controller/*.js'] // Archivos donde se definen las rutas }; diff --git a/backend/controller/MeetController.js b/backend/controller/MeetController.js index b40a276..1956ec2 100644 --- a/backend/controller/MeetController.js +++ b/backend/controller/MeetController.js @@ -49,6 +49,8 @@ const router = express.Router() * application/json: * schema: * $ref: '#/components/schemas/Meet' + * security: + * - basicAuth: [] */ router.post('/', (request, response) => { response.setHeader('Content-Type', 'application/json') @@ -104,6 +106,8 @@ router.post('/', (request, response) => { * message: * type: string * example: Meet not found + * security: + * - basicAuth: [] */ router.get('/', async (request, response) => { const url = request.query.url @@ -136,6 +140,8 @@ router.get('/', async (request, response) => { * type: array * items: * $ref: '#/components/schemas/Meet' + * security: + * - basicAuth: [] */ router.get('/all', async (request, response) => { const meets = await meetService.getAll() diff --git a/backend/controller/PurchaseController.js b/backend/controller/PurchaseController.js index 719ac6c..356c00a 100644 --- a/backend/controller/PurchaseController.js +++ b/backend/controller/PurchaseController.js @@ -58,6 +58,8 @@ const PurchaseService = require("../service/PurchaseService"); * error: * type: string * example: Error message + * security: + * - basicAuth: [] */ router.post('/', async (req, res) => { try { diff --git a/backend/controller/StripeController.js b/backend/controller/StripeController.js index 95f91c4..cf51fe1 100644 --- a/backend/controller/StripeController.js +++ b/backend/controller/StripeController.js @@ -59,6 +59,8 @@ const domain = process.env.FRONTEND_URL; * error: * type: string * example: "Error message" + * security: + * - basicAuth: [] */ router.post('/create-checkout-session', async (req, res) => { try { diff --git a/backend/controller/UserController.js b/backend/controller/UserController.js index fd8d1ca..15c314d 100644 --- a/backend/controller/UserController.js +++ b/backend/controller/UserController.js @@ -12,6 +12,106 @@ function validatePassword(password) { } /** + * @swagger + * components: + * schemas: + * User: + * type: object + * required: + * - email + * - birthDate + * - password + * properties: + * email: + * type: string + * format: email + * description: El correo electrónico del usuario + * birthDate: + * type: string + * format: date + * description: La fecha de nacimiento del usuario + * password: + * type: string + * format: password + * description: La contraseña del usuario + * example: + * email: "usuario@example.com" + * birthDate: "2000-01-01" + * password: "password1234" + * + * UserLogin: + * type: object + * required: + * - user + * - password + * properties: + * user: + * type: string + * format: email + * description: El correo electrónico del usuario + * password: + * type: string + * format: password + * description: La contraseña del usuario (Base64 encoded) + * example: + * user: "usuario@example.com" + * password: "cGFzc3dvcmQxMjM=" + * + * UserRole: + * type: object + * properties: + * userMail: + * type: string + * format: email + * description: El correo electrónico del usuario + * role: + * type: string + * description: El rol del usuario + * example: + * userMail: "usuario@example.com" + * role: "admin" + * + * UserValidation: + * type: object + * required: + * - userMail + * properties: + * userMail: + * type: string + * format: email + * description: El correo electrónico del usuario + * example: + * userMail: "usuario@example.com" + * + * Error: + * type: object + * properties: + * message: + * type: string + * description: El mensaje de error + * example: + * message: "El correo electrónico ya está registrado" + * + * UserResponse: + * type: object + * properties: + * email: + * type: string + * format: email + * description: El correo electrónico del usuario + * birthDate: + * type: string + * format: date + * description: La fecha de nacimiento del usuario + * role: + * type: string + * description: El rol del usuario + * example: + * email: "usuario@example.com" + * birthDate: "2000-01-01" + * role: "user" + + /** * @swagger * /register: * post: @@ -43,9 +143,11 @@ function validatePassword(password) { * description: Error en la validación de los datos * 409: * description: El email ya está registrado + * security: + * - basicAuth: [] */ router.post('/register', async (req, res) => { - const { user, date, password } = req.body; + const {user, date, password} = req.body; const errors = {}; @@ -74,16 +176,16 @@ router.post('/register', async (req, res) => { } if (Object.keys(errors).length > 0) { - return res.status(400).json({ errors }); + return res.status(400).json({errors}); } - const userFound = await userService.save({ email: user, birthDate: date, password }); + const userFound = await userService.save({email: user, birthDate: date, password}); if (userFound === null) { - const errorResponse = { message: 'El email ya está registrado' }; + const errorResponse = {message: 'El email ya está registrado'}; return res.status(409).json(errorResponse); } - res.status(201).json({ message: 'Registro exitoso' }); + res.status(201).json({message: 'Registro exitoso'}); }); /** @@ -114,6 +216,8 @@ router.post('/register', async (req, res) => { * description: Error en la validación de los datos * 404: * description: Usuario o contraseña incorrectos + * security: + * - basicAuth: [] */ router.post('/login', async (req, res) => { const user = req.body.user; @@ -132,13 +236,13 @@ router.post('/login', async (req, res) => { } if (Object.keys(errors).length > 0) { - return res.status(400).json({ errors }); + return res.status(400).json({errors}); } const userFound = await userService.login(user, password); if (!userFound) { - return res.status(404).json({ message: 'Usuario o contraseña incorrectos' }); + return res.status(404).json({message: 'Usuario o contraseña incorrectos'}); } userFound.password = undefined; @@ -161,6 +265,8 @@ router.post('/login', async (req, res) => { * responses: * 200: * description: Roles del usuario + * security: + * - basicAuth: [] */ router.get('/roles', async (req, res) => { const userMail = req.query.userMail; @@ -192,24 +298,26 @@ router.get('/roles', async (req, res) => { * description: El email ya está validado o no fue proporcionado * 404: * description: El email no está registrado + * security: + * - basicAuth: [] */ router.patch('/validate', async (req, res) => { const userMail = req.body.userMail; if (!userMail) { - return res.status(400).json({ message: 'El email es requerido' }); + return res.status(400).json({message: 'El email es requerido'}); } const userExist = await userService.findByEmail(userMail); if (!userExist) { - return res.status(404).json({ message: 'El email no está registrado' }); + return res.status(404).json({message: 'El email no está registrado'}); } if (userExist.validated) { - return res.status(400).json({ message: 'El email ya está validado' }); + return res.status(400).json({message: 'El email ya está validado'}); } await userService.validate(userMail); - res.status(200).json({ message: 'Validación exitosa' }); + res.status(200).json({message: 'Validación exitosa'}); }); module.exports = router;