class Paymaster::BaseRequest
Attributes
client[RW]
Public Class Methods
new(args={})
click to toggle source
# File lib/paymaster/base_request.rb, line 5 def initialize(args={}) args.each do |k, v| public_send "#{k}=", v end end
Public Instance Methods
endpoint()
click to toggle source
# File lib/paymaster/base_request.rb, line 11 def endpoint raise NotImplementedError, 'You should implement #endpoint' end
params()
click to toggle source
# File lib/paymaster/base_request.rb, line 15 def params {} end
perform()
click to toggle source
# File lib/paymaster/base_request.rb, line 24 def perform xml_body = params.to_xml( root: "Command", skip_types: true, skip_instruct: true, indent: 0, dasherize: false, ) signature = sign(xml_body) xml_body.gsub! "<LMI_HASH></LMI_HASH>", "<LMI_HASH>#{signature}</LMI_HASH>" response = Faraday.post endpoint, xml_body self.class::Response.parse(response.body) end
sign(string)
click to toggle source
# File lib/paymaster/base_request.rb, line 19 def sign(string) return unless client.secret_key Digest::SHA256.hexdigest(string + client.secret_key) end