@redwoodjs-stripe/api
Version:
API-side code for RedwoodJS-Stripe projects
44 lines (43 loc) • 1.21 kB
JavaScript
import { deepOmitNils } from "../../lib/deepOmitNils.js";
import { stripe } from "../../lib/stripe.js";
const stripeItems = async ({
params = { productParams: {}, priceParams: {} }
}) => {
const { productParams = {}, priceParams = {} } = deepOmitNils(params) ?? {};
const products = await stripe.products.list(productParams);
const itemList = [];
for (const product of products.data) {
const prices = await stripe.prices.list({
product: product.id,
...priceParams
});
const price = prices.data[0];
if (typeof price !== "undefined") {
itemList.push({
id: price.id,
name: product.name,
description: product.description,
images: product.images,
price: price.unit_amount,
type: price.type
});
}
}
return itemList;
};
const stripeItem = async ({ id }) => {
const price = await stripe.prices.retrieve(id.toString());
const product = await stripe.products.retrieve(price.product.toString());
return {
id: price.id,
name: product.name,
description: product.description,
images: product.images,
price: price.unit_amount,
type: price.type
};
};
export {
stripeItem,
stripeItems
};