mirror of
https://github.com/documenso/documenso.git
synced 2025-11-10 04:22:32 +10:00
Currently Stripe prices search is omitting a price for an unknown reason. Changed our fetch logic to use `list` instead of `search` allows us to work around the issue. It's unknown on the performance impact of using `list` vs `search`
18 lines
575 B
TypeScript
18 lines
575 B
TypeScript
import type { STRIPE_PLAN_TYPE } from '@documenso/lib/constants/billing';
|
|
import { stripe } from '@documenso/lib/server-only/stripe';
|
|
|
|
type PlanType = (typeof STRIPE_PLAN_TYPE)[keyof typeof STRIPE_PLAN_TYPE];
|
|
|
|
export const getPricesByPlan = async (plan: PlanType | PlanType[]) => {
|
|
const planTypes: string[] = typeof plan === 'string' ? [plan] : plan;
|
|
|
|
const prices = await stripe.prices.list({
|
|
expand: ['data.product'],
|
|
limit: 100,
|
|
});
|
|
|
|
return prices.data.filter(
|
|
(price) => price.type === 'recurring' && planTypes.includes(price.metadata.plan),
|
|
);
|
|
};
|