saleor-app-sdk-REDIS_APL/src/middleware.ts

43 lines
1.3 KiB
TypeScript
Raw Normal View History

2022-05-26 12:14:13 +00:00
import type { Middleware } from "retes";
import { Response } from 'retes/response';
import * as Const from './const';
export const withBaseURL: Middleware = (handler) => async (request) => {
const { host, "x-forwarded-proto": protocol = "http" } = request.headers;
request.context.baseURL = `${protocol}://${host}`;
const response = await handler(request);
return response;
}
export const withSaleorDomainPresent: Middleware = (handler) => async (request) => {
const saleor_domain = request.headers[Const.SALEOR_DOMAIN_HEADER];
if (!saleor_domain) {
return Response.BadRequest({ success: false, message: "Missing Saleor domain header." });
}
return handler(request);
};
export const withSaleorEventMatch = (expectedEvent: string): Middleware => (handler) => async (request) => {
const receivedEvent = request.headers[Const.SALEOR_EVENT_HEADER];
if (receivedEvent !== expectedEvent) {
return Response.BadRequest({ success: false, message: "Invalid Saleor Event" });
}
return handler(request);
};
export const withAuthTokenRequired: Middleware = (handler) => async (request) => {
const auth_token = request.params.auth_token;
if (!auth_token) {
return Response.BadRequest({ success: false, message: "Missing auth token." });
}
return handler(request);
};