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