Module: Payoneer::Api::Core::ClassMethods

Defined in:
lib/payoneer/api/core.rb

Defined Under Namespace

Classes: Request

Instance Method Summary collapse

Instance Method Details

#configObject



57
58
59
# File 'lib/payoneer/api/core.rb', line 57

def config
  ::Payoneer.config
end

#default_paramsObject



61
62
63
64
65
66
67
# File 'lib/payoneer/api/core.rb', line 61

def default_params
  {
    p1: config.partner_username,
    p2: config.partner_api_password,
    p3: config.partner_id,
  }
end

#get_method_nameObject



8
9
10
# File 'lib/payoneer/api/core.rb', line 8

def get_method_name
  self.name.split('::').last
end

#request(params = {}) ⇒ Object



21
22
23
24
25
26
27
28
29
30
31
32
33
34
# File 'lib/payoneer/api/core.rb', line 21

def request(params = {})
  params = to_api_params(params)
  method_name = get_method_name
  config.validate!

  request_params = default_params.merge(mname: method_name).merge(params)

  request = Request.new(config)
  response = request.execute(request_params)

  fail Errors::ApiError.new(response.code, response.body) unless response.code == 200

  to_response(response)
end

#to_api_params(params) ⇒ Object



11
12
13
# File 'lib/payoneer/api/core.rb', line 11

def to_api_params(params)
  params
end

#to_response(response) ⇒ Object



14
15
16
17
18
19
# File 'lib/payoneer/api/core.rb', line 14

def to_response(response)
  hash_response = Hash.from_xml(response.body)
  content_name = hash_response.keys.first
  inner_content = hash_response.values.first
  ::Payoneer::Response.new content_name, inner_content
end