class CoubApi::Client
Attributes
connection[R]
request_options[R]
response[R]
security_options[R]
Public Class Methods
new(access_token = nil, api_version: API_VERSION)
click to toggle source
# File lib/coub_api.rb, line 35 def initialize(access_token = nil, api_version: API_VERSION) @access_token = access_token @api_version = api_version end
Public Instance Methods
get(*methods, **hargs)
click to toggle source
# File lib/coub_api.rb, line 66 def get(*methods, **hargs) make_request(methods.join('/'), __method__, **hargs) end
make_request(method, http_method, request_params = {})
click to toggle source
# File lib/coub_api.rb, line 42 def make_request(method, http_method, request_params = {}) api_version = request_params.delete(:api_version) || @api_version url = "#{CoubApi::API_URL}/v#{api_version}/#{method}.json" faraday_options = {request: {timeout: 150, open_timeout: 150}, url: url} connection = Faraday.new(faraday_options) do |faraday| faraday.headers['Content-Type'] = 'application/json' faraday.request :url_encoded faraday.response :logger faraday.adapter Faraday.default_adapter end request_params[:access_token] = @access_token if @access_token response = connection.send(http_method) do |request| request.params = request_params end json_data = MultiJson.load(response.body) if json_data.is_a? Hash raise Error, json_data if json_data['error'] end json_data end
method_missing(name, **hargs)
click to toggle source
# File lib/coub_api.rb, line 74 def method_missing(name, **hargs) get(name, **hargs) end
post(*methods, **hargs)
click to toggle source
# File lib/coub_api.rb, line 70 def post(*methods, **hargs) make_request(methods.join('/'), __method__, **hargs) end