autumn-js
Version:
Autumn JS Library
62 lines (59 loc) • 1.29 kB
JavaScript
import {
toBackendError,
toBackendRes
} from "./chunk-W63TY2DI.mjs";
// src/libraries/backend/utils/withAuth.ts
var withAuth = ({
fn,
requireCustomer = true
}) => {
return async ({
autumn,
body,
path,
getCustomer,
pathParams,
searchParams
}) => {
let authResult = await getCustomer();
let customerId = authResult?.customerId;
if (!customerId && requireCustomer) {
if (body?.errorOnNotFound === false) {
return toBackendError({
path,
message: "No customer ID found",
code: "no_customer_id",
statusCode: 202
});
} else {
return toBackendError({
path,
message: "No customer ID found",
code: "no_customer_id",
statusCode: 401
});
}
}
let cusData = authResult?.customerData || body?.customer_data;
try {
let res = await fn({
body,
autumn,
customer_id: customerId,
customer_data: cusData,
pathParams,
searchParams
});
return toBackendRes({ res });
} catch (error) {
return toBackendError({
path,
message: error.message || "unknown error",
code: "internal_error"
});
}
};
};
export {
withAuth
};