module TicketingHub::Request
Public Instance Methods
delete(path, options={})
click to toggle source
# File lib/ticketing_hub/request.rb, line 7 def delete(path, options={}) request(:delete, path, options).body end
get(path, options={}, collection_class=nil)
click to toggle source
# File lib/ticketing_hub/request.rb, line 11 def get(path, options={}, collection_class=nil) TicketingHub::Collection.new self, path, options, collection_class end
patch(path, options={})
click to toggle source
# File lib/ticketing_hub/request.rb, line 15 def patch(path, options={}) request(:patch, path, options).body end
post(path, options={})
click to toggle source
# File lib/ticketing_hub/request.rb, line 19 def post(path, options={}) request(:post, path, options).body end
put(path, options={})
click to toggle source
# File lib/ticketing_hub/request.rb, line 23 def put(path, options={}) request(:put, path, options).body end
request(method, path, options={})
click to toggle source
# File lib/ticketing_hub/request.rb, line 27 def request(method, path, options={}) force_urlencoded = options.delete(:force_urlencoded) || false url = options.delete(:endpoint) || api_endpoint conn_options = { force_urlencoded: force_urlencoded, url: url } connection(conn_options).send(method) do |request| case method when :get, :delete, :head request.url(path, options) when :patch, :post, :put request.path = path request.body = force_urlencoded ? options : MultiJson.dump(options) unless options.empty? end request.headers['Host'] = TicketingHub.request_host if TicketingHub.request_host end rescue TicketingHub::Unauthorized => e if refresh_token.present? && e.response_body == ' ' body = post '/oauth/token', { grant_type: 'refresh_token', refresh_token: refresh_token, client_id: client_id, client_secret: client_secret } self.refresh_token = body.refresh_token self.access_token = body.access_token self.expires_at = Time.now + body.expires_in.to_i request method, path, options else raise TicketingHub::Unauthorized.new(e.response) end end