summaryrefslogtreecommitdiff
path: root/lib/solidus_subscriptions/order_creator.rb
blob: 97b858a138a646aadc26fbfb1bd05af3dec5f451 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# frozen_string_literal: true

module SolidusSubscriptions
  class OrderCreator
    def initialize(installment, extra_attributes)
      @installment = installment
      @extra_attributes = (extra_attributes || {}).symbolize_keys
    end

    def call
      ::Spree::Order.create(
        user: installment.subscription.user,
        email: installment.subscription.user.email,
        store: installment.subscription.store || ::Spree::Store.default,
        subscription_order: true,
        subscription: installment.subscription,
        currency: installment.subscription.currency,
        **extra_attributes
      )
    end

    protected

    attr_reader :installment, :extra_attributes
  end
end