Sha256: ea7898659ec6a6aec56c685d477fb80e8f736a6716c337e5b7ce11076594da8c

Contents?: true

Size: 879 Bytes

Versions: 4

Compression:

Stored size: 879 Bytes

Contents

# Create new subscription line items associated to the current order, when
# a line item is added to the cart which includes subscription_line_item
# params.
#
# The Subscriptions::LineItem acts as a line item place holder for a
# Subscription, indicating that it has been added to the order, but not
# yet purchased
module Spree
  module Controllers::Api::LineItems::CreateSubscriptionLineItems
    include SolidusSubscriptions::SubscriptionLineItemBuilder

    def self.prepended(base)
      base.after_action(
        :handle_subscription_line_items,
        only: [:create, :update],
        if: ->{ params[:subscription_line_item] }
      )
    end

    private

    def handle_subscription_line_items
      create_subscription_line_item(@line_item)
    end
  end
end

Spree::Api::LineItemsController.prepend(Spree::Controllers::Api::LineItems::CreateSubscriptionLineItems)

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
solidus_subscriptions-alpha-0.0.5 app/decorators/spree/controllers/api/line_items/create_subscription_line_items.rb
solidus_subscriptions-alpha-0.0.3 app/decorators/spree/controllers/api/line_items/create_subscription_line_items.rb
solidus_subscriptions-alpha-0.0.2 app/decorators/spree/controllers/api/line_items/create_subscription_line_items.rb
solidus_subscriptions-alpha-0.0.1 app/decorators/spree/controllers/api/line_items/create_subscription_line_items.rb