class OmniKassa::Request
Constants
Public Class Methods
new()
click to toggle source
# File lib/omni_kassa/request.rb, line 17 def initialize self.key_version = KEY_VERSION # Load default settings into the request OmniKassa.request_settings.each do |key, value| send key.to_s + '=', value end end
Public Instance Methods
perform()
click to toggle source
# File lib/omni_kassa/request.rb, line 33 def perform HTTParty.post(OmniKassa.url, query: query).body end
query()
click to toggle source
# File lib/omni_kassa/request.rb, line 41 def query { InterfaceVersion: INTERFACE_VERSION, Data: data, Seal: seal } end
transaction_reference()
click to toggle source
# File lib/omni_kassa/request.rb, line 37 def transaction_reference @transaction_reference.call(order_id) end
valid?()
click to toggle source
# File lib/omni_kassa/request.rb, line 26 def valid? REQUIRED.map do |attr| value = send attr return false if value.nil? end end
Protected Instance Methods
data()
click to toggle source
# File lib/omni_kassa/request.rb, line 51 def data data_hash.to_a.map {|a| a.join('=') }.join('|') end
data_hash()
click to toggle source
# File lib/omni_kassa/request.rb, line 55 def data_hash REQUIRED.each do |param| value = send param raise RequestError, "attribute '#{param}' missing" if value.nil? end [OPTIONAL, REQUIRED].flatten.map do |param| value = send param [param.to_s.camelcase(:lower), value] end end
seal()
click to toggle source
# File lib/omni_kassa/request.rb, line 66 def seal Digest::SHA2.new.update data + OmniKassa.secret_key end