Method: SolidusSubscriptions::SubscriptionGenerator#activate
- Defined in:
- lib/solidus_subscriptions/subscription_generator.rb
#activate(subscription_line_items) ⇒ SolidusSubscriptions::Subscription
Create and persist a subscription for a collection of subscription
line items
24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 |
# File 'lib/solidus_subscriptions/subscription_generator.rb', line 24 def activate(subscription_line_items) return if subscription_line_items.empty? order = subscription_line_items.first.order configuration = subscription_configuration(subscription_line_items.first) subscription_attributes = { user: order.user, line_items: subscription_line_items, store: order.store, shipping_address: order.ship_address, billing_address: order.bill_address, payment_source: order.payments.valid.last&.payment_source, payment_method: order.payments.valid.last&.payment_method, currency: order.currency, **configuration.to_h } Subscription.create!(subscription_attributes) do |sub| sub.actionable_date = sub.next_actionable_date end.tap do |_subscription| cleanup_subscription_line_items(subscription_line_items) end end |