@microfleet/core
Version:
Abstract microservice core
33 lines • 1.24 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
const validation_1 = require("@microfleet/validation");
const common_errors_1 = require("common-errors");
const constants_1 = require("../../../constants");
const lifecycle_1 = require("./lifecycle");
async function validate(request) {
const { validator } = this;
const paramsKey = constants_1.DATA_KEY_SELECTOR[request.method];
try {
const validationResult = await validator.validate(request.action.schema, request[paramsKey]);
request[paramsKey] = validationResult;
return request;
}
catch (error) {
if (error.constructor === validation_1.HttpStatusError) {
throw error;
}
throw new common_errors_1.Error('internal validation error', error);
}
}
function passThrough(request) {
return request;
}
function validateHandler(request) {
const { schema } = request.action;
const validateFn = (schema === undefined || schema === null || schema === false)
? passThrough
: validate;
return lifecycle_1.default('validate', validateFn, this.router.extensions, [request], this);
}
exports.default = validateHandler;
//# sourceMappingURL=validate.js.map
;