Class: SevenRooms::Reservations::Detail

Inherits:
Object
  • Object
show all
Includes:
DefaultErrorContainer, ApiHelpers
Defined in:
app/services/seven_rooms/reservations/detail.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from DefaultErrorContainer

#error, #error_message_simple, #merge_errors

Methods included from ApiHelpers

#api_uri, #auth_headers, #common_headers, #find_seven_rooms_vendor_application, #parse_user_or_guest_full_name, #parsed_vendor_name, #send_error_availability_notification_to_staff, #sevenrooms_credit_card_error?, #standardize_or_default_phone

Constructor Details

#initialize(reservation_id) ⇒ Detail

Returns a new instance of Detail.



11
12
13
# File 'app/services/seven_rooms/reservations/detail.rb', line 11

def initialize(reservation_id)
  @reservation = Reservation.find_by(id: reservation_id)
end

Instance Attribute Details

#reservationObject (readonly)

Returns the value of attribute reservation.



9
10
11
# File 'app/services/seven_rooms/reservations/detail.rb', line 9

def reservation
  @reservation
end

Instance Method Details

#executeObject



15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
# File 'app/services/seven_rooms/reservations/detail.rb', line 15

def execute
  errors.clear
  error_message = SevenRooms::ErrorMessages::DEFAULT_ERROR

  # Validate reservation
  validation_result = validate_reservation
  unless validation_result.success?
    error_message = validation_result.message
    errors.add(:base, error_message)

    return ServiceResult.new errors: errors, message: error_message
  end

  result = get_seven_rooms_reservation(validation_result.data[:concierge_id],
                                       validation_result.data[:seven_rooms_reservation_id])
  unless result.success?
    error_message = result.message
    errors.add(:base, error_message)

    return ServiceResult.new errors: errors, message: error_message
  end

  ServiceResult.new data: result.data
end