Skip to content

Commit 8e30f45

Browse files
committed
feat(payments): Update Cancel and Stay subscribed pages
1 parent 087ec80 commit 8e30f45

File tree

3 files changed

+53
-2
lines changed

3 files changed

+53
-2
lines changed

apps/payments/next/app/[locale]/subscriptions/[subscriptionId]/cancel/page.tsx

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,12 @@ export default async function CancelSubscriptionPage({
4040
notFound();
4141
}
4242

43+
if (pageContent.isEligibleForChurnCancel === true) {
44+
redirect(
45+
`/${locale}/subscriptions/${subscriptionId}/loyalty-discount/cancel`
46+
);
47+
}
48+
4349
return (
4450
<CancelSubscription
4551
userId={uid}

apps/payments/next/app/[locale]/subscriptions/[subscriptionId]/stay-subscribed/page.tsx

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,12 @@ export default async function StaySubscribedPage({
4141
notFound();
4242
}
4343

44+
if (pageContent.isEligibleforChurnStaySubscribed === true) {
45+
redirect(
46+
`/${locale}/subscriptions/${subscriptionId}/loyalty-discount/stay-subscribed`
47+
);
48+
}
49+
4450
return (
4551
<StaySubscribed
4652
userId={uid}

libs/payments/ui/src/lib/nestapp/nextjs-actions.service.ts

Lines changed: 41 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -666,7 +666,32 @@ export class NextJSActionsService {
666666
args.selectedLanguage
667667
);
668668

669-
return result;
669+
const churnCancelEligibility =
670+
await this.churnInterventionService.determineCancelChurnContentEligibility(
671+
{
672+
uid: args.uid,
673+
subscriptionId: args.subscriptionId,
674+
acceptLanguage: args.acceptLanguage,
675+
selectedLanguage: args.selectedLanguage,
676+
}
677+
);
678+
679+
// const cancelInterstitialOfferEligibility =
680+
// await this.churnInterventionService.determineCancelInterstitialOfferEligibility(
681+
// {
682+
// uid: args.uid,
683+
// subscriptionId: args.subscriptionId,
684+
// acceptLanguage: args.acceptLanguage,
685+
// selectedLanguage: args.selectedLanguage,
686+
// }
687+
// );
688+
689+
return {
690+
...result,
691+
isEligibleForChurnCancel: churnCancelEligibility.isEligible,
692+
// isEligibleForCancelInterstitialOffer:
693+
// cancelInterstitialOfferEligibility.isEligible,
694+
};
670695
}
671696

672697
@SanitizeExceptions()
@@ -678,6 +703,7 @@ export class NextJSActionsService {
678703
@CaptureTimingWithStatsD()
679704
async getStaySubscribedFlowContent(args: {
680705
uid: string;
706+
customerId: string;
681707
subscriptionId: string;
682708
acceptLanguage?: string | null;
683709
selectedLanguage?: string;
@@ -690,7 +716,20 @@ export class NextJSActionsService {
690716
args.selectedLanguage
691717
);
692718

693-
return result;
719+
const churnStaySubscribedEligibility =
720+
await this.churnInterventionService.determineStaySubscribedEligibility(
721+
args.uid,
722+
args.customerId,
723+
args.subscriptionId,
724+
args.acceptLanguage,
725+
args.selectedLanguage
726+
);
727+
728+
return {
729+
...result,
730+
isEligibleforChurnStaySubscribed:
731+
churnStaySubscribedEligibility.isEligible,
732+
};
694733
}
695734

696735
@SanitizeExceptions()

0 commit comments

Comments
 (0)