From 428805f7914a18a998b09a6a2a4adbd864e6c9c2 Mon Sep 17 00:00:00 2001 From: giancarlo Date: Wed, 22 May 2024 00:49:26 +0700 Subject: [PATCH] Update logic for setting active subscription status Broaden the conditions for active subscriptions in the lemon-squeezy-webhook-handler.service. Now, subscriptions that are cancelled but still within their valid period (cancelAtPeriodEnd) are considered active. This helps prevent users from losing access to services until their current subscription period strictly ends. --- .../src/services/lemon-squeezy-webhook-handler.service.ts | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/packages/billing/lemon-squeezy/src/services/lemon-squeezy-webhook-handler.service.ts b/packages/billing/lemon-squeezy/src/services/lemon-squeezy-webhook-handler.service.ts index bd9810667..b4ed4c5e1 100644 --- a/packages/billing/lemon-squeezy/src/services/lemon-squeezy-webhook-handler.service.ts +++ b/packages/billing/lemon-squeezy/src/services/lemon-squeezy-webhook-handler.service.ts @@ -331,7 +331,13 @@ export class LemonSqueezyWebhookHandlerService trialStartsAt: number | null; trialEndsAt: number | null; }): UpsertSubscriptionParams { - const active = params.status === 'active' || params.status === 'trialing'; + const canceledAtPeriodEnd = + params.status === 'cancelled' && params.cancelAtPeriodEnd; + + const active = + params.status === 'active' || + params.status === 'trialing' || + canceledAtPeriodEnd; const lineItems = params.lineItems.map((item) => { const quantity = item.quantity ?? 1;