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