class SynergyWholesale::BaseResponse

Attributes

command[R]
response[R]

Public Class Methods

new(response, command) click to toggle source
# File lib/synergy_wholesale/base_response.rb, line 6
def initialize(response, command)
  @response = response
  @command  = command

  validate_status
  validate_expected_fields
  validate_data
end

Public Instance Methods

body() click to toggle source
# File lib/synergy_wholesale/base_response.rb, line 23
def body
  response
end
message() click to toggle source
# File lib/synergy_wholesale/base_response.rb, line 19
def message
  response[:error_message]
end
successful?() click to toggle source
# File lib/synergy_wholesale/base_response.rb, line 15
def successful?
  [*success_statuses].include?(response[:status])
end

Protected Instance Methods

expected_fields() click to toggle source
# File lib/synergy_wholesale/base_response.rb, line 50
def expected_fields
  []
end
success_statuses() click to toggle source
# File lib/synergy_wholesale/base_response.rb, line 46
def success_statuses
  %w(OK ok)
end
validate_data() click to toggle source
# File lib/synergy_wholesale/base_response.rb, line 42
def validate_data
  # NO-OP - let subclasses provide their own implementation if they choose
end
validate_expected_fields() click to toggle source
# File lib/synergy_wholesale/base_response.rb, line 34
def validate_expected_fields
  return if expected_fields.empty?
  [*expected_fields].each do |expected|
    message = "Expected property [#{expected}] missing from response data"
    raise Errors::BadDataError.new(message, command, response) unless response.has_key?(expected.to_sym)
  end
end
validate_status() click to toggle source
# File lib/synergy_wholesale/base_response.rb, line 29
def validate_status
  raise Errors::BadDataError.new("No status found in response to Soap command [#{command}]", command, response) unless response[:status]
  raise Errors::ResponseError.new(command, response) unless successful?
end