Class: SpreeCmCommissioner::TicketTransfers::TransferGuest
- Inherits:
-
Object
- Object
- SpreeCmCommissioner::TicketTransfers::TransferGuest
- Defined in:
- app/services/spree_cm_commissioner/ticket_transfers/transfer_guest.rb
Overview
Creates a new guest under the given line_item and user, copying event-specific data (seat, bib, block) from the source guest.
Constant Summary collapse
- EVENT_DATA_ATTRIBUTES =
%i[event_id seat_number bib_number bib_prefix bib_index block_id entry_type].freeze
Class Method Summary collapse
Instance Method Summary collapse
Class Method Details
.call(from_guest:, new_line_item:, new_user:) ⇒ Object
8 9 10 |
# File 'app/services/spree_cm_commissioner/ticket_transfers/transfer_guest.rb', line 8 def self.call(from_guest:, new_line_item:, new_user:) new.call(from_guest: from_guest, new_line_item: new_line_item, new_user: new_user) end |
Instance Method Details
#call(from_guest:, new_line_item:, new_user:) ⇒ Object
12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
# File 'app/services/spree_cm_commissioner/ticket_transfers/transfer_guest.rb', line 12 def call(from_guest:, new_line_item:, new_user:) new_guest = from_guest.class.new( from_guest.slice(*EVENT_DATA_ATTRIBUTES).merge( line_item: new_line_item, user: new_user, token: SecureRandom.uuid, state: :active, public_metadata: { 'from_transfer' => true } ) ) from_guest.update!(state: :transferred, bib_index: nil) new_guest.save! new_guest end |