SplatNet-Backend/judd/middleware/validate-multipart.js

41 lines
1.1 KiB
JavaScript
Raw Permalink Normal View History

2026-02-22 19:48:25 +01:00
const titles = require('../titles');
function validateMultipartMiddleware(request, response, next) {
const title = titles[request.titleCode];
if (!title || !title.multipart_validator) {
return next();
}
const multipartValidator = title.multipart_validator;
const validationSchema = title.validation_schema;
multipartValidator(request.copy, response, error => {
if (error) {
return next(error);
}
const resultData = {
...request.copy.body,
};
if (Array.isArray(request.copy.files)) {
for (const file of request.copy.files) {
resultData[file.fieldname] = file.buffer;
}
}
const validationResult = validationSchema.validate(resultData);
if (validationResult.error) {
console.error('[Validation Error]', validationResult.error.details);
return next(validationResult.error);
}
request.resultData = validationResult.value;
next();
});
}
module.exports = validateMultipartMiddleware;