浏览代码

Merge pull request #26208 from overleaf/kh-extend-trial

[web] support extending trials for Stripe

GitOrigin-RevId: ae7d863f61ce5ec463509c590199c6e583300e8f
Kristina 1 年之前
父节点
当前提交
02e7ac52e2

+ 2 - 5
services/web/app/src/Features/Subscription/SubscriptionHandler.js

@@ -246,11 +246,8 @@ async function attemptPaypalInvoiceCollection(recurlyAccountCode) {
   )
 }
 
-async function extendTrial(subscription, daysToExend) {
-  await RecurlyWrapper.promises.extendTrial(
-    subscription.recurlySubscription_id,
-    daysToExend
-  )
+async function extendTrial(subscription, daysToExtend) {
+  await Modules.promises.hooks.fire('extendTrial', subscription, daysToExtend)
 }
 
 /**

+ 2 - 2
services/web/app/src/Features/Subscription/SubscriptionHelper.js

@@ -126,14 +126,14 @@ function getPaidSubscriptionState(subscription) {
 }
 
 function getSubscriptionTrialStartedAt(subscription) {
-  if (subscription?.recurlyStatus) {
+  if (subscription?.recurlyStatus?.trialStartedAt) {
     return subscription.recurlyStatus?.trialStartedAt
   }
   return subscription?.paymentProvider?.trialStartedAt
 }
 
 function getSubscriptionTrialEndsAt(subscription) {
-  if (subscription?.recurlyStatus) {
+  if (subscription?.recurlyStatus?.trialEndsAt) {
     return subscription.recurlyStatus?.trialEndsAt
   }
   return subscription?.paymentProvider?.trialEndsAt

+ 1 - 1
services/web/frontend/js/features/project-list/util/user.ts

@@ -24,7 +24,7 @@ export function getUserName(user: UserRef) {
 
 export function getUserSubscriptionState(subscription: Subscription) {
   if ('subscription' in subscription) {
-    if (subscription.subscription.recurlyStatus) {
+    if (subscription.subscription.recurlyStatus?.state) {
       return subscription.subscription.recurlyStatus.state
     }
     if (subscription.subscription.paymentProvider) {

+ 2 - 0
services/web/test/unit/src/Subscription/SubscriptionHelperTests.js

@@ -437,6 +437,7 @@ describe('SubscriptionHelper', function () {
 
     it('should return the payment provider trial start date if it exists', function () {
       const result = this.SubscriptionHelper.getSubscriptionTrialStartedAt({
+        recurlyStatus: {},
         paymentProvider: { trialStartedAt: new Date('2023-01-01') },
       })
       expect(result).to.deep.equal(new Date('2023-01-01'))
@@ -459,6 +460,7 @@ describe('SubscriptionHelper', function () {
 
     it('should return the payment provider trial end date if it exists', function () {
       const result = this.SubscriptionHelper.getSubscriptionTrialEndsAt({
+        recurlyStatus: {},
         paymentProvider: { trialEndsAt: new Date('2023-01-01') },
       })
       expect(result).to.deep.equal(new Date('2023-01-01'))