Add telemetry support from via Judd
This commit is contained in:
parent
536eeedff5
commit
227002a9ef
19 changed files with 4110 additions and 4 deletions
41
judd/middleware/validate-multipart.js
Normal file
41
judd/middleware/validate-multipart.js
Normal file
|
|
@ -0,0 +1,41 @@
|
|||
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;
|
||||
Loading…
Reference in a new issue