Class: SpreeCmCommissioner::TicketTransfers::Complete

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

Instance Method Summary collapse

Instance Method Details

#call(ticket_transfer:) ⇒ Object



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

def call(ticket_transfer:)
  raise I18n.t('ticket_transfer.transfer_not_found') if ticket_transfer.blank?

  ActiveRecord::Base.transaction do
    ticket_transfer.lock!
    validate_execution!(ticket_transfer)

    new_guest = transfer_guest_to_buyer!(ticket_transfer)
    finalize_transfer!(ticket_transfer, new_guest)

    success(ticket_transfer: ticket_transfer, new_guest: new_guest)
  end
rescue StandardError => e
  handle_failure(ticket_transfer, e)
end