module Tremendous::Request
Attributes
access_token[R]
uri[R]
Public Class Methods
new(access_token, uri)
click to toggle source
# File lib/tremendous/request.rb, line 4 def initialize(access_token, uri) @access_token = access_token @uri = uri end
Public Instance Methods
_execute(method, url, data={}, *opts)
click to toggle source
# File lib/tremendous/request.rb, line 27 def _execute(method, url, data={}, *opts) data[:format] = :json data[:headers] = { 'authorization' => "Bearer #{@access_token}" }.merge(data.class == Hash ? data[:headers] || {} : {}) HTTParty.send(method, url, data, *opts) end
delete(path, data={}, *opts)
click to toggle source
# File lib/tremendous/request.rb, line 23 def delete(path, data={}, *opts) handle_response(_execute(:delete, url(path), data, *opts)) end
get(path, data={}, *opts)
click to toggle source
# File lib/tremendous/request.rb, line 11 def get(path, data={}, *opts) handle_response(_execute(:get, url(path), data, *opts)) end
handle_response(response)
click to toggle source
# File lib/tremendous/request.rb, line 40 def handle_response(response) if response.success? response_json = JSON.parse(response.body).with_indifferent_access else case response.code when 400 raise Tremendous::BadDataError.new(response) when 401 raise Tremendous::AccessError.new(response) when 402 raise Tremendous::PaymentError.new(response) else raise Tremendous::Error.new(response) end end end
post(path, data={}, *opts)
click to toggle source
# File lib/tremendous/request.rb, line 15 def post(path, data={}, *opts) handle_response(_execute(:post, url(path), data, *opts)) end
put(path, data={}, *opts)
click to toggle source
# File lib/tremendous/request.rb, line 19 def put(path, data={}, *opts) handle_response(_execute(:put, url(path), data, *opts)) end
url(path, params={})
click to toggle source
# File lib/tremendous/request.rb, line 36 def url(path, params={}) URI.join(uri, path) end