Class: SpreeCmCommissioner::LineItems::ValidatePurchaseLimits

Inherits:
Object
  • Object
show all
Includes:
Spree::ServiceModule::Base
Defined in:
app/services/spree_cm_commissioner/line_items/validate_purchase_limits.rb

Constant Summary collapse

LimitExceededError =
Class.new(StandardError)
COUNTED_STATES =
%w[complete resumed].freeze

Instance Method Summary collapse

Instance Method Details

#call(line_item:) ⇒ Object



19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# File 'app/services/spree_cm_commissioner/line_items/validate_purchase_limits.rb', line 19

def call(line_item:)
  @line_item = line_item
  @product = line_item.product
  @order = line_item.order

  return success(nil) if @product.blank?

  check_order_limit!
  
  check_ip_limit!
  check_device_limit!

  success(nil)
rescue LimitExceededError => e
  failure(nil, e.message)
end