@redwoodjs-stripe/api
Version:
API-side code for RedwoodJS-Stripe projects
52 lines (51 loc) • 1.43 kB
JavaScript
import { deepOmitNils } from "../../lib/deepOmitNils.js";
import { nonNilAssertionError } from "../../lib/nonNilAssertionError.js";
import { stripe } from "../../lib/stripe.js";
const createStripeCustomerPortalSession = async ({
data: inputData
}) => {
const data = deepOmitNils(inputData);
if (data?.customer == null) {
throw nonNilAssertionError(
"createStripeCustomerPortalSession:customer",
data
);
}
const params = {
...data,
locale: data.locale
};
const session = await stripe.billingPortal.sessions.create(params);
return session;
};
const createStripeCustomerPortalSessionSkipAuth = async (payload) => {
const session = await createStripeCustomerPortalSession(payload);
return session;
};
const createStripeCustomerPortalConfig = async ({
data: inputData
}) => {
const data = deepOmitNils(inputData);
if (data == null) {
throw nonNilAssertionError(
"createStripeCustomerPortalConfig:data",
data
);
}
const config = await stripe.billingPortal.configurations.create(data);
return config;
};
const listStripeCustomerPortalConfig = async ({
params
}) => {
const configArray = await stripe.billingPortal.configurations.list(
deepOmitNils(params)
);
return configArray;
};
export {
createStripeCustomerPortalConfig,
createStripeCustomerPortalSession,
createStripeCustomerPortalSessionSkipAuth,
listStripeCustomerPortalConfig
};