Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Store Stripe billing info + auto recharge without subscription #421

Merged
merged 10 commits into from
Aug 23, 2024

Conversation

nikochiko
Copy link
Member

Q/A checklist

  • If you add new dependencies, did you update the lock file?
poetry lock --no-update
  • Run tests
ulimit -n unlimited && ./scripts/run-tests.sh
  • Do a self code review of the changes - Read the diff at least twice.
  • Carefully think about the stuff that might break because of this change - this sounds obvious but it's easy to forget to do "Go to references" on each function you're changing and see if it's used in a way you didn't expect.
  • The relevant pages still run when you press submit
  • The API for those pages still work (API tab)
  • The public API interface doesn't change if you didn't want it to (check API tab > docs page)
  • Do your UI changes (if applicable) look acceptable on mobile?
  • Ensure you have not regressed the import time unless you have a good reason to do so.
    You can visualize this using tuna:
python3 -X importtime -c 'import server' 2> out.log && tuna out.log

To measure import time for a specific library:

$ time python -c 'import pandas'

________________________________________________________
Executed in    1.15 secs    fish           external
   usr time    2.22 secs   86.00 micros    2.22 secs
   sys time    0.72 secs  613.00 micros    0.72 secs

To reduce import times, import libraries that take a long time inside the functions that use them instead of at the top of the file:

def my_function():
    import pandas as pd
    ...

Legal Boilerplate

Look, I get it. The entity doing business as “Gooey.AI” and/or “Dara.network” was incorporated in the State of Delaware in 2020 as Dara Network Inc. and is gonna need some rights from me in order to utilize my contributions in this PR. So here's the deal: I retain all rights, title and interest in and to my contributions, and by keeping this boilerplate intact I confirm that Dara Network Inc can use, modify, copy, and redistribute my contributions, under its choice of terms.

nikochiko and others added 10 commits August 22, 2024 19:08
- Fix payment method not being saved after addon purchase - enable setup_future_usage
- Update subscription creation logic to avoid unnecessary Stripe checkout session when a default payment method exists.
- Revert handle_checkout_session_completed() - don't save default payment method until invoice is paid
- Simplify and consolidate default payment method save in `app_users.tasks`.
- Handle Stripe subscription cancellation 404
- Fix billing logic to check for default payment method, add warning for missing method on auto-recharge
- Add new utility functions in `Subscription` model to streamline default auto-recharge parameter settings
- Modify admin view to include readonly fields for `created_at`, `updated_at`, and `get_payment_method_summary`.
- Remove non-explicit `set_free_subscription_for_user` function.
- update Subscription.is_paid to use PricingPlan.monthly_charge
- Update unique constraint condition in Subscription model to check for monthly charge greater than zero instead of specific plan
- Allow the user to choose if they want to save payment information when doing one time addon purchases
- Handle payment info being removed from   stripe by user
- Check and restore existing stripe subscriptions if database is out of sync
@devxpy devxpy force-pushed the autorecharge-after-oneoff branch from 2066ec8 to 20f0fa9 Compare August 23, 2024 08:24
@devxpy
Copy link
Member

devxpy commented Aug 23, 2024

can you review this once please

@nikochiko
Copy link
Member Author

thanks! this looks great when I tried it out.

@devxpy
Copy link
Member

devxpy commented Aug 23, 2024

lgtm

@nikochiko nikochiko merged commit bb334bc into master Aug 23, 2024
6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants