@vtex/api
Version:
VTEX I/O API client
26 lines (25 loc) • 984 B
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.routerFromPublicHttpHandlers = void 0;
const constants_1 = require("../../../../constants");
const logger_1 = require("../../../logger");
const console_1 = require("./../../../logger/console");
const routerFromPublicHttpHandlers = (routes) => {
return async (ctx, next) => {
var _a;
const routeId = ctx.get(constants_1.COLOSSUS_ROUTE_ID_HEADER);
if (!routeId) {
return next();
}
const handler = (_a = routes[routeId]) === null || _a === void 0 ? void 0 : _a.handler;
if (!handler) {
const msg = `Handler with id '${routeId}' not implemented.`;
ctx.status = 501;
ctx.body = msg;
(0, console_1.logOnceToDevConsole)(msg, logger_1.LogLevel.Error);
return;
}
await handler(ctx, next);
};
};
exports.routerFromPublicHttpHandlers = routerFromPublicHttpHandlers;