Class: SpreeCmCommissioner::Integrations::VireakBuntham::Resources::Seat

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

Overview

Wraps a seat row returned by POST /seat/unavailable or /seat/list.

Example payload (one element from a JSON array):

{ "seatNumber": "2", "gender": "1", "status": 0 }

status: 0 = occupied (from /seat/unavailable), 1 = available (from /seat/list) gender: 1 = male, 2 = female

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods inherited from Base

from_api_response

Constructor Details

#initialize(data) ⇒ Seat

rubocop:disable Lint/MissingSuper



12
13
14
15
16
# File 'app/services/spree_cm_commissioner/integrations/vireak_buntham/resources/seat.rb', line 12

def initialize(data) # rubocop:disable Lint/MissingSuper
  @seat_number = data['seatNumber'].to_s
  @gender = data['gender'].to_i
  @status = data['status'].to_i
end

Instance Attribute Details

#genderObject

Returns the value of attribute gender.



10
11
12
# File 'app/services/spree_cm_commissioner/integrations/vireak_buntham/resources/seat.rb', line 10

def gender
  @gender
end

#seat_numberObject

Returns the value of attribute seat_number.



10
11
12
# File 'app/services/spree_cm_commissioner/integrations/vireak_buntham/resources/seat.rb', line 10

def seat_number
  @seat_number
end

#statusObject

Returns the value of attribute status.



10
11
12
# File 'app/services/spree_cm_commissioner/integrations/vireak_buntham/resources/seat.rb', line 10

def status
  @status
end

Instance Method Details

#available?Boolean

Returns:

  • (Boolean)


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

def available?
  status == 1
end

#female?Boolean

Returns:

  • (Boolean)


34
35
36
# File 'app/services/spree_cm_commissioner/integrations/vireak_buntham/resources/seat.rb', line 34

def female?
  gender == 2
end

#labelObject



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

def label
  seat_number
end

#male?Boolean

Returns:

  • (Boolean)


30
31
32
# File 'app/services/spree_cm_commissioner/integrations/vireak_buntham/resources/seat.rb', line 30

def male?
  gender == 1
end

#occupied?Boolean

Returns:

  • (Boolean)


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

def occupied?
  status.zero?
end

#to_hObject



38
39
40
41
42
43
44
45
46
# File 'app/services/spree_cm_commissioner/integrations/vireak_buntham/resources/seat.rb', line 38

def to_h
  {
    seat_number: seat_number,
    gender: gender,
    status: status,
    occupied: occupied?,
    available: available?
  }
end