Class: SpreeCmCommissioner::TicketTransfers::PreviewRule

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

Instance Method Summary collapse

Instance Method Details

#call(from_guest_id:, currency:) ⇒ Object



6
7
8
9
10
11
12
13
14
15
16
17
# File 'app/services/spree_cm_commissioner/ticket_transfers/preview_rule.rb', line 6

def call(from_guest_id:, currency:)
  from_guest = SpreeCmCommissioner::Guest.find_by(id: from_guest_id)
  return failure(nil, I18n.t('ticket_transfer.ticket_not_found')) if from_guest.blank?

  fee_result = FeeCalculator.call(from_guest: from_guest, price: 0, currency: currency)
  return failure(nil, fee_result.error) if fee_result.failure?

  success(
    currency: currency,
    rule: rule_summary(fee_result.value[:rule], from_guest)
  )
end