class PaylineSDK::Request

Public Class Methods

new(opts = {}) click to toggle source
# File lib/payline_sdk/request.rb, line 4
def initialize(opts = {})
  define_accessors
  set_attributes(opts)
  self.version = 3
end

Public Instance Methods

set_attributes(attributes) click to toggle source
# File lib/payline_sdk/request.rb, line 10
def set_attributes(attributes)
  attributes.each do |k,v|
    instance_variable_set("@#{k}", v)
  end
end
to_requestable_attribute(obj) click to toggle source

Recursive method to transform the following objects to Hash (Search in depth):

- PaylineSDK::Object::Base
- Un objet definissant la methode :to_payline_sdk_obj
# File lib/payline_sdk/request.rb, line 19
def to_requestable_attribute(obj)
  if obj.is_a?(Hash)
    obj.each do |k,v|
      obj[k] = to_requestable_attribute(v)
    end
  elsif obj.is_a?(PaylineSDK::Object::Base)
    obj = to_requestable_attribute(obj.to_h)
  elsif obj.class.method_defined?(:to_payline_sdk_obj)
    obj = to_requestable_attribute(obj.to_payline_sdk_obj.to_h)
  end
  return obj
end
to_requestable_hash(allowed_keys) click to toggle source

Transform current Request object to hash

# File lib/payline_sdk/request.rb, line 33
def to_requestable_hash(allowed_keys)
  Hash[allowed_keys.zip(allowed_keys.map {|key| to_requestable_attribute(eval("@#{key.to_s}"))})]
end

Private Instance Methods

define_accessors() click to toggle source
# File lib/payline_sdk/request.rb, line 39
def define_accessors
  get_attributes_from_api.each do |method|
    self.class.send(:attr_accessor, method)
  end
end
get_attributes_from_api() click to toggle source
# File lib/payline_sdk/request.rb, line 45
def get_attributes_from_api
  attributes = []
  PaylineSDK::Configuration::API[:apis].keys.each do |api|
    PaylineSDK::Configuration::API[:apis][api][:methods].each do |method|
      method[:attributes].each {|attribute| attributes << attribute[:name]}
    end
  end
  return attributes.uniq!
end