43 lines
1.3 KiB
TypeScript
43 lines
1.3 KiB
TypeScript
![]() |
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);
|
||
|
};
|