@chezearth/swagger-node-runner
Version:
Swagger loader and middleware utilities
34 lines (25 loc) • 1.02 kB
JavaScript
;
var debug = require('debug')('swagger:swagger_validator');
var _ = require('lodash');
var util = require('util');
module.exports = function create(fittingDef, bagpipes) {
debug('config: %j', fittingDef);
return function swagger_validator(context, cb) {
debug('exec');
// todo: add support for validating accept header against produces declarations
// see: http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html
//var accept = req.headers['accept'];
//var produces = _.union(operation.api.definition.produces, operation.definition.produces);
if (context.request.swagger.operation) {
var validateResult = context.request.swagger.operation.validateRequest(context.request);
if (validateResult.errors.length) {
var error = new Error('Validation errors');
error.statusCode = 400;
error.errors = validateResult.errors;
}
} else {
debug('not a swagger operation, will not validate response');
}
cb(error);
}
};