1
0
Fork 0
mirror of https://github.com/maybe-finance/maybe.git synced 2025-08-02 20:15:22 +02:00

Subscription tests and domain (#2209)

* Save work

* Subscriptions and trials domain

* Store family ID on customer

* Remove indirection of stripe calls

* Test simplifications

* Update brakeman

* Fix stripe tests in CI

* Update billing page to show subscription details

* Remove legacy columns

* Complete billing settings page

* Fix hardcoded plan name

* Handle subscriptions for self hosting mode

* Lint fixes
This commit is contained in:
Zach Gollwitzer 2025-05-06 14:05:21 -04:00 committed by GitHub
parent 8c10e87387
commit 5da4bb6dc3
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
40 changed files with 1041 additions and 233 deletions

View file

@ -2,28 +2,28 @@ class Provider::Stripe::SubscriptionEventProcessor < Provider::Stripe::EventProc
Error = Class.new(StandardError)
def process
raise Error, "Family not found for Stripe customer ID: #{customer_id}" unless family
raise Error, "Family not found for Stripe customer ID: #{subscription.customer}" unless family
family.update(
stripe_plan_id: plan_id,
stripe_subscription_status: subscription_status
family.subscription.update(
stripe_id: subscription.id,
status: subscription.status,
interval: subscription_details.plan.interval,
amount: subscription_details.plan.amount / 100.0, # Stripe returns cents, we report dollars
currency: subscription_details.plan.currency.upcase,
current_period_ends_at: Time.at(subscription_details.current_period_end)
)
end
private
def family
Family.find_by(stripe_customer_id: customer_id)
Family.find_by(stripe_customer_id: subscription.customer)
end
def customer_id
event_data.customer
def subscription_details
event_data.items.data.first
end
def plan_id
event_data.plan.id
end
def subscription_status
event_data.status
def subscription
event_data
end
end