UNPKG

@redwoodjs-stripe/api

Version:

API-side code for RedwoodJS-Stripe projects

52 lines (51 loc) 1.43 kB
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 };