summaryrefslogtreecommitdiff
path: root/app/services/solidus_subscriptions/subscription_line_item_builder.rb
blob: 73541023430ba20b7d042f45e4d2a7ec1b65f41f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# frozen_string_literal: true

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.configuration.subscription_line_item_attributes
      )
    end
  end
end