def request(method, path, params = {}, token = nil)
headers = {}
if token
headers['Authorization'] = "Bearer #{token}"
elsif @access_token
headers['Authorization'] = "Bearer #{@access_token}"
end
headers['Accept'] = 'application/json'
request_params = {
method: method,
url: @url_base + path,
headers: headers,
ssl_version: 'TLSv1'
}
if ['get', 'head', 'delete'].include?(method.downcase)
headers[:params] = params
else
request_params[:payload] = params
end
begin
result = RestClient::Request.execute(request_params)
parse_json(result)
rescue RestClient::ExceptionWithResponse => e
raise ClientError.new(e.message, e.http_body, e.http_code)
end
end