saleor-app-sdk-REDIS_APL/src/middleware/with-saleor-event-match.ts

32 lines
884 B
TypeScript
Raw Normal View History

2022-08-25 10:52:19 +00:00
import { Middleware } from "retes";
import { Response } from "retes/response";
import { getSaleorHeaders } from "../headers";
import { createMiddlewareDebug } from "./middleware-debug";
const debug = createMiddlewareDebug("withSaleorEventMatch");
2022-08-25 10:52:19 +00:00
export const withSaleorEventMatch =
<E extends string>(expectedEvent: `${Lowercase<E>}`): Middleware =>
(handler) =>
async (request) => {
const { event } = getSaleorHeaders(request.headers);
debug("Middleware called with even header: \"%s\"", event);
2022-08-25 10:52:19 +00:00
if (event !== expectedEvent) {
debug(
"Event from header (%s) doesnt match expected (%s). Will respond with Bad Request",
event,
expectedEvent
);
2022-08-25 10:52:19 +00:00
return Response.BadRequest({
success: false,
message: `Invalid Saleor event. Expecting ${expectedEvent}.`,
});
}
return handler(request);
};