Class: SpreeCmCommissioner::Integrations::VireakBuntham::Resources::ConfirmBookingRequest

Inherits:
Object
  • Object
show all
Defined in:
app/services/spree_cm_commissioner/integrations/vireak_buntham/resources/confirm_booking_request.rb

Overview

Request payload for POST /booking/confirm.

VET (Spring backend) expects seat fields as repeated flat keys —nationality=1&nationality=2&seatName=a&seatName=b — which it binds into parallel List<T> fields on ApiConfirmBooking. Indexed (nationality=) or array-bracket (nationality[]=) syntax does not work.

Constant Summary collapse

SEAT_FIELDS =
{
  nationality: 'nationality',
  gender: 'seatGender',
  name: 'seatName',
  price: 'seatPrice',
  seat: 'seatNum'
}.freeze

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(payload) ⇒ ConfirmBookingRequest

Returns a new instance of ConfirmBookingRequest.



19
20
21
# File 'app/services/spree_cm_commissioner/integrations/vireak_buntham/resources/confirm_booking_request.rb', line 19

def initialize(payload)
  @payload = payload
end

Instance Attribute Details

#payloadObject (readonly)

Returns the value of attribute payload.



17
18
19
# File 'app/services/spree_cm_commissioner/integrations/vireak_buntham/resources/confirm_booking_request.rb', line 17

def payload
  @payload
end

Instance Method Details

#to_formObject



23
24
25
# File 'app/services/spree_cm_commissioner/integrations/vireak_buntham/resources/confirm_booking_request.rb', line 23

def to_form
  URI.encode_www_form(to_pairs)
end

#to_pairsObject



27
28
29
# File 'app/services/spree_cm_commissioner/integrations/vireak_buntham/resources/confirm_booking_request.rb', line 27

def to_pairs
  header_pairs + seat_pairs
end