class MC2P::APIRequest

API request - class used to connect with the API

Public Class Methods

new(key, secret_key) click to toggle source

Initializes an api request Params:

key

key to connect with API

secret_key

secret key to connect with API

# File lib/request.rb, line 8
def initialize(key, secret_key)
  @key = key
  @secret_key = secret_key

  @authorization_header = 'AppKeys'
  @api_url = 'api.mychoice2pay.com/v1'
end

Public Instance Methods

_request(method, status_code = 200, path = nil, data = nil, abs_url = nil, resource = nil, resource_id = nil) click to toggle source

Decorator to make the request based on the method received Params:

method

method to make the request

status_code

value to check if the request receive a correct response

Returns: a function to make the request

# File lib/request.rb, line 37
def _request(method, status_code = 200, path = nil, data = nil,
             abs_url = nil, resource = nil, resource_id = nil)
  url = abs_url.nil? ? get_abs_url(path) : abs_url

  request = Unirest.send(method.downcase, url,
                         headers: headers,
                         parameters: data.to_json)

  if request.code != status_code
    raise InvalidRequestError.new(
      "Error #{request.code}",
      request.body,
      resource,
      resource_id
    )
  end

  status_code != 204 ? request.body : {}
end
delete(path = nil, data = nil, abs_url = nil, resource = nil, resource_id = nil) click to toggle source

DELETE 204 function

# File lib/request.rb, line 82
def delete(path = nil, data = nil, abs_url = nil,
           resource = nil, resource_id = nil)
  _request('delete', 204, path, data, abs_url, resource, resource_id)
end
get(path = nil, data = nil, abs_url = nil, resource = nil, resource_id = nil) click to toggle source

GET 200 function

# File lib/request.rb, line 70
def get(path = nil, data = nil, abs_url = nil,
        resource = nil, resource_id = nil)
  _request('get', 200, path, data, abs_url, resource, resource_id)
end
get_abs_url(path) click to toggle source

Params:

path

relative url

Returns: The absolute url to send the request

# File lib/request.rb, line 28
def get_abs_url(path)
  "https://#{@api_url}#{path}"
end
headers() click to toggle source

Creates the headers to include in the request Returns: A dictionary with the headers needed for the API

# File lib/request.rb, line 18
def headers
  {
    'authorization' => "#{@authorization_header} #{@key}:#{@secret_key}",
    'content-type' => 'application/json'
  }
end
patch(path = nil, data = nil, abs_url = nil, resource = nil, resource_id = nil) click to toggle source

PATCH 200 function

# File lib/request.rb, line 76
def patch(path = nil, data = nil, abs_url = nil,
          resource = nil, resource_id = nil)
  _request('patch', 200, path, data, abs_url, resource, resource_id)
end
post(path = nil, data = nil, abs_url = nil, resource = nil, resource_id = nil) click to toggle source

POST 201 function

# File lib/request.rb, line 58
def post(path = nil, data = nil, abs_url = nil,
         resource = nil, resource_id = nil)
  _request('post', 201, path, data, abs_url, resource, resource_id)
end
post200(path = nil, data = nil, abs_url = nil, resource = nil, resource_id = nil) click to toggle source

POST 200 function

# File lib/request.rb, line 64
def post200(path = nil, data = nil, abs_url = nil,
            resource = nil, resource_id = nil)
  _request('post', 200, path, data, abs_url, resource, resource_id)
end