All files / services/agent-execution/src/middleware validation.js

46.66% Statements 14/30
100% Branches 2/2
100% Functions 1/1
46.66% Lines 14/30

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 311x 1x 1x 1x 1x 1x 1x 1x 1x 1x                                 1x 1x 1x 1x  
const Ajv = require('ajv');
const addFormats = require('ajv-formats');
 
const ajv = new Ajv({ allErrors: true, messages: true });
addFormats(ajv);
 
function validateBody(schema) {
  const validate = ajv.compile(schema);
 
  return (req, res, next) => {
    const valid = validate(req.body);

    if (!valid) {
      const errors = validate.errors.map(err => ({
        field: err.instancePath.replace('/', '') || err.params.missingProperty || 'body',
        message: err.message
      }));

      return res.status(400).json({
        success: false,
        message: 'Validation failed',
        errors
      });
    }

    next();
  };
}
 
module.exports = { validateBody };