import * as yup from 'yup';
import { es } from 'yup-locales';
yup.setLocale(es);
/**
* Esquema de validación para el inicio de sesión de usuarios.
*
* @constant {yup.ObjectSchema} schema
*/
const schema = yup.object({
/**
* Validación del correo electrónico.
* Debe ser un string requerido en formato de correo electrónico válido.
*/
email: yup.string().required().email().label('Email'),
/**
* Validación de la contraseña.
* Debe ser un string requerido con al menos 6 caracteres.
*/
password: yup.string().required().min(6).label('Contraseña')
});
/**
* Middleware para validar los datos del inicio de sesión de usuarios.
*
* @async
* @function
* @param {Object} req - Objeto de solicitud HTTP.
* @param {Object} res - Objeto de respuesta HTTP.
* @param {Function} next - Función para pasar al siguiente middleware.
* @throws {Error} Si la validación falla, se pasa el error al siguiente middleware.
*/
export const loginUsuarioValidations = async (req, res, next) => {
try {
// Validamos los datos recibidos según el esquema definido
const data = await schema.validate(req.body, { abortEarly: false, stripUnknown: true });
// Guardamos los datos validados en req.curatedBody
req.curatedBody = data;
next();
} catch (e) {
// Pasamos los errores de validación al siguiente middleware
next(e);
}
};