fix: Check if there are any subscriptions before we create a default subscription (#11813)

Avoid creating duplicate subscriptions.
This commit is contained in:
Pranav
2025-06-25 18:53:36 -07:00
committed by GitHub
parent b7f2c151bf
commit 257cd07ee6
2 changed files with 78 additions and 1 deletions

View File

@@ -4,6 +4,8 @@ class Enterprise::Billing::CreateStripeCustomerService
DEFAULT_QUANTITY = 2
def perform
return if existing_subscription?
customer_id = prepare_customer_id
subscription = Stripe::Subscription.create(
{
@@ -50,4 +52,18 @@ class Enterprise::Billing::CreateStripeCustomerService
price_ids = default_plan['price_ids']
price_ids.first
end
def existing_subscription?
stripe_customer_id = account.custom_attributes['stripe_customer_id']
return false if stripe_customer_id.blank?
subscriptions = Stripe::Subscription.list(
{
customer: stripe_customer_id,
status: 'active',
limit: 1
}
)
subscriptions.data.present?
end
end