From fec155ea9cc33ce0c66cc8f1a81bc23cd18ca393 Mon Sep 17 00:00:00 2001 From: Aman Agrawal Date: Wed, 6 Dec 2023 06:09:33 +0000 Subject: [PATCH] stripe: Extract method to get billing page context. --- corporate/lib/stripe.py | 37 +++++++++++++++++++++++-------------- 1 file changed, 23 insertions(+), 14 deletions(-) diff --git a/corporate/lib/stripe.py b/corporate/lib/stripe.py index 4388a22379..9463c7cc67 100644 --- a/corporate/lib/stripe.py +++ b/corporate/lib/stripe.py @@ -1585,20 +1585,13 @@ class BillingSession(ABC): return None, None return None, last_ledger_entry - def get_billing_page_context(self) -> Dict[str, Any]: - context: Dict[str, Any] = {} - now = timezone_now() - - customer = self.get_customer() - assert customer is not None - - plan = get_current_plan_by_customer(customer) - assert plan is not None - - new_plan, last_ledger_entry = self.make_end_of_cycle_updates_if_needed(plan, now) - assert last_ledger_entry is not None - plan = new_plan if new_plan is not None else plan - + def get_billing_context_from_plan( + self, + customer: Customer, + plan: CustomerPlan, + last_ledger_entry: LicenseLedger, + now: datetime, + ) -> Dict[str, Any]: downgrade_at_end_of_cycle = plan.status == CustomerPlan.DOWNGRADE_AT_END_OF_CYCLE downgrade_at_end_of_free_trial = plan.status == CustomerPlan.DOWNGRADE_AT_END_OF_FREE_TRIAL switch_to_annual_at_end_of_cycle = ( @@ -1690,6 +1683,22 @@ class BillingSession(ABC): } return context + def get_billing_page_context(self) -> Dict[str, Any]: + now = timezone_now() + + customer = self.get_customer() + assert customer is not None + + plan = get_current_plan_by_customer(customer) + assert plan is not None + + new_plan, last_ledger_entry = self.make_end_of_cycle_updates_if_needed(plan, now) + assert last_ledger_entry is not None + plan = new_plan if new_plan is not None else plan + + context = self.get_billing_context_from_plan(customer, plan, last_ledger_entry, now) + return context + def get_initial_upgrade_context( self, initial_upgrade_request: InitialUpgradeRequest ) -> Tuple[Optional[str], Optional[UpgradePageContext]]: