Skip to content

Commit 50c8443

Browse files
committed
feat(payments): Update Cancel and Stay subscribed pages
1 parent 1e8ae12 commit 50c8443

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
@@ -677,7 +677,32 @@ export class NextJSActionsService {
677677
args.selectedLanguage
678678
);
679679

680-
return result;
680+
const churnCancelEligibility =
681+
await this.churnInterventionService.determineCancelChurnContentEligibility(
682+
{
683+
uid: args.uid,
684+
subscriptionId: args.subscriptionId,
685+
acceptLanguage: args.acceptLanguage,
686+
selectedLanguage: args.selectedLanguage,
687+
}
688+
);
689+
690+
// const cancelInterstitialOfferEligibility =
691+
// await this.churnInterventionService.determineCancelInterstitialOfferEligibility(
692+
// {
693+
// uid: args.uid,
694+
// subscriptionId: args.subscriptionId,
695+
// acceptLanguage: args.acceptLanguage,
696+
// selectedLanguage: args.selectedLanguage,
697+
// }
698+
// );
699+
700+
return {
701+
...result,
702+
isEligibleForChurnCancel: churnCancelEligibility.isEligible,
703+
// isEligibleForCancelInterstitialOffer:
704+
// cancelInterstitialOfferEligibility.isEligible,
705+
};
681706
}
682707

683708
@SanitizeExceptions()
@@ -689,6 +714,7 @@ export class NextJSActionsService {
689714
@CaptureTimingWithStatsD()
690715
async getStaySubscribedFlowContent(args: {
691716
uid: string;
717+
customerId: string;
692718
subscriptionId: string;
693719
acceptLanguage?: string | null;
694720
selectedLanguage?: string;
@@ -701,7 +727,20 @@ export class NextJSActionsService {
701727
args.selectedLanguage
702728
);
703729

704-
return result;
730+
const churnStaySubscribedEligibility =
731+
await this.churnInterventionService.determineStaySubscribedEligibility(
732+
args.uid,
733+
args.customerId,
734+
args.subscriptionId,
735+
args.acceptLanguage,
736+
args.selectedLanguage
737+
);
738+
739+
return {
740+
...result,
741+
isEligibleforChurnStaySubscribed:
742+
churnStaySubscribedEligibility.isEligible,
743+
};
705744
}
706745

707746
@SanitizeExceptions()

0 commit comments

Comments
 (0)