class Assist::WebServices::Base
Attributes
params[R]
Public Class Methods
new(extra_params)
click to toggle source
# File lib/assist/web_services/base.rb, line 12 def initialize(extra_params) extra_params = normalize_keys(extra_params) .keep_if { |k| self.class::PERMITTED_EXTRA_PARAMS.include?(k) } @params = default_params.merge(extra_params) end
Public Instance Methods
original_response()
click to toggle source
# File lib/assist/web_services/base.rb, line 32 def original_response response end
perform()
click to toggle source
# File lib/assist/web_services/base.rb, line 19 def perform response self end
request_params()
click to toggle source
# File lib/assist/web_services/base.rb, line 28 def request_params params end
result()
click to toggle source
# File lib/assist/web_services/base.rb, line 24 def result @result ||= parse_result end
Private Instance Methods
check_response!(xml)
click to toggle source
# File lib/assist/web_services/base.rb, line 69 def check_response!(xml) attrs = xml.elements["result"].attributes return if attrs["firstcode"].to_s == '0' raise Exception::APIError, "Assist API error: firstcode=#{attrs['firstcode']}, \ secondcode=#{attrs['secondcode']}" end
default_params()
click to toggle source
# File lib/assist/web_services/base.rb, line 40 def default_params { merchant_id: Assist.config.merchant_id, login: Assist.config.login, password: Assist.config.password, format: 3 } end
parse_result()
click to toggle source
# File lib/assist/web_services/base.rb, line 78 def parse_result raise NotImplementedError, "Must be implemented by subtypes" end
response()
click to toggle source
# File lib/assist/web_services/base.rb, line 49 def response return @response if @response uri = URI(Assist.config.endpoint + self.class::SERVICE_PATH) @response = Net::HTTP.post_form(uri, params) end
response_xml()
click to toggle source
# File lib/assist/web_services/base.rb, line 56 def response_xml return @response_xml if @response_xml if response.code != '200' raise Exception::APIError, "Invalid response: code=#{response.code}" end xml = REXML::Document.new(response.body) check_response!(xml) @response_xml = xml end