const Ajv = require('ajv'); const {customThrow} = require('../helpers'); const parseAndValidateBody = async (schema, body) => { let parsedBody; try { parsedBody = JSON.parse(body); } catch (err) { customThrow(400, 'Error. Malformed event.parsedBody.'); } const validation = validateBody(schema, parsedBody); if (!validation.isValid) { customThrow(400, validation.error); } return parsedBody; }; const validateBody = (schema, body) => { const ajv = new Ajv({$data: true}); const validate = ajv.compile(schema); const isValid = validate(body); return { isValid: isValid, error: JSON.stringify(validate.errors) } }; module.exports = { parseAndValidateBody, };