@redwoodjs-stripe/api
Version:
API-side code for RedwoodJS-Stripe projects
42 lines (41 loc) • 1.23 kB
JavaScript
import { deepOmitNils } from "../../lib/deepOmitNils.js";
import { lastStripeObject } from "../../lib/lastStripeObject.js";
import { nonNilAssertionError } from "../../lib/nonNilAssertionError.js";
import { parseStripeResponse } from "../../lib/parseStripeResponse.js";
import { stripe } from "../../lib/stripe.js";
const stripeCustomerSearch = async ({
query
}) => {
const customer = await stripe.customers.search({
query: query ?? ""
});
return parseStripeResponse(lastStripeObject(customer.data));
};
const retrieveStripeCustomer = async ({
data
}) => {
const { id, addProps } = data ?? {};
if (id == null) {
throw nonNilAssertionError("retrieveStripeCustomer:id", data);
}
const customer = await stripe.customers.retrieve(
id,
deepOmitNils(addProps) ?? {}
);
return parseStripeResponse(customer);
};
const createStripeCustomer = async ({
data
}) => {
const params = deepOmitNils(data) ?? {};
if (params.name == null) {
throw nonNilAssertionError("createStripeCustomer:name", params);
}
const newCustomer = await stripe.customers.create(params);
return parseStripeResponse(newCustomer);
};
export {
createStripeCustomer,
retrieveStripeCustomer,
stripeCustomerSearch
};