import { isValidObjectId } from "mongoose";
import { BadRequestError } from "../errors/BadRequestError.js";
/**
* Middleware para validar el formato de un ObjectId de Mongoose.
*
* @function
* @param {string} [paramName='id'] - Nombre del parámetro en los parámetros de la ruta que contiene el ObjectId.
* @returns {Function} Middleware de validación.
*/
export const validateObjectIdFormat = (paramName = 'id') => {
return (req, res, next) => {
/**
* Valor del parámetro de la ruta especificado.
* @type {string}
*/
const paramValue = req.params[paramName] || '';
// Verificamos si el valor es un ObjectId válido
if (!isValidObjectId(paramValue)) {
// Enviamos un error BadRequest si no es válido
next(new BadRequestError(`param_${paramName}_is_not_a_valid_objectid`.toLowerCase()));
} else {
// Continuamos al siguiente middleware si es válido
next();
}
};
};