Deployable hello function behind api gateway

This commit is contained in:
Ben Ramey
2018-09-18 06:50:29 -05:00
parent 5437fe88b0
commit 435060a764
6 changed files with 176 additions and 0 deletions

35
validators/index.js Normal file
View File

@@ -0,0 +1,35 @@
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();
const validate = ajv.compile(schema);
const isValid = validate(body);
return {
isValid: isValid,
error: JSON.stringify(validate.errors)
}
};
module.exports = {
parseAndValidateBody,
};