Class: Paymaster::BaseRequest
- Inherits:
-
Object
- Object
- Paymaster::BaseRequest
show all
- Defined in:
- lib/paymaster/base_request.rb
Instance Attribute Summary collapse
Instance Method Summary
collapse
Constructor Details
#initialize(args = {}) ⇒ BaseRequest
Returns a new instance of BaseRequest.
5
6
7
8
9
|
# File 'lib/paymaster/base_request.rb', line 5
def initialize(args={})
args.each do |k, v|
public_send "#{k}=", v
end
end
|
Instance Attribute Details
#client ⇒ Object
Returns the value of attribute client.
3
4
5
|
# File 'lib/paymaster/base_request.rb', line 3
def client
@client
end
|
Instance Method Details
#endpoint ⇒ Object
11
12
13
|
# File 'lib/paymaster/base_request.rb', line 11
def endpoint
raise NotImplementedError, 'You should implement #endpoint'
end
|
#params ⇒ Object
15
16
17
|
# File 'lib/paymaster/base_request.rb', line 15
def params
{}
end
|
24
25
26
27
28
29
30
31
32
33
34
35
36
37
|
# 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) ⇒ Object
19
20
21
22
|
# File 'lib/paymaster/base_request.rb', line 19
def sign(string)
return unless client.secret_key
Digest::SHA256.hexdigest(string + client.secret_key)
end
|