summaryrefslogtreecommitdiff
path: root/app/services/solidus_subscriptions/subscription_line_item_builder.rb
blob: 9dc0960b34b190e06b06d6699e5768f6b079d124 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
module SolidusSubscriptions
  module SubscriptionLineItemBuilder
    private

    def create_subscription_line_item(line_item)
      SolidusSubscriptions::LineItem.create!(
        subscription_params.merge(spree_line_item: line_item)
      )

      # Rerun the promotion handler to pickup subscription promotions
      ::Spree::PromotionHandler::Cart.new(line_item.order).activate
      line_item.order.recalculate
    end

    def subscription_params
      params.require(:subscription_line_item).permit(
        SolidusSubscriptions::Config.subscription_line_item_attributes
      )
    end
  end
end