redis-smq-rest-api
Version:
A RESTful API for RedisSMQ
31 lines • 1.16 kB
JavaScript
import { asValue } from 'awilix';
import { EControllerRequestPayload } from '../../controller/types/index.js';
export function ValidateRequestMiddleware(requestValidationFn) {
return async (ctx, next) => {
for (const [src, validator] of requestValidationFn.entries()) {
if (src === EControllerRequestPayload.PATH) {
const params = ctx.params;
validator(params);
ctx.scope.register({
requestPathDTO: asValue(params),
});
}
if (src === EControllerRequestPayload.QUERY) {
const query = ctx.query;
validator(query);
ctx.scope.register({
requestQueryDTO: asValue(query),
});
}
if (src === EControllerRequestPayload.BODY) {
const body = ctx.request['body'] ?? {};
validator(body);
ctx.scope.register({
requestBodyDTO: asValue(body),
});
}
}
return next();
};
}
//# sourceMappingURL=ValidateRequestMiddleware.js.map