class MonkeyBusiness::HttpRequest
Abstraction of an HTTP request sent to the surveymonkey API
Public Class Methods
delete()
click to toggle source
# File lib/api/request.rb, line 68 def self.delete request = Net::HTTP::Delete.new(@uri.request_uri) request['Authorization'] = "bearer #{@access_token}" request['Content-Type'] = 'application/json' @http.request(request) end
get()
click to toggle source
# File lib/api/request.rb, line 26 def self.get params = @options.map { |k, v| "#{k}=#{URI.encode(v)}" }.join('&') request = Net::HTTP::Get.new("#{@uri.request_uri}?#{params}") request['Authorization'] = "bearer #{@access_token}" request['Content-Type'] = 'application/json' response = @http.request(request) JSON.parse(response.body) end
head()
click to toggle source
# File lib/api/request.rb, line 77 def self.head request = Net::HTTP::Head.new(@uri.request_uri) request['Authorization'] = "bearer #{@access_token}" request['Content-Type'] = 'application/json' @http.request(request).to_hash end
options()
click to toggle source
# File lib/api/request.rb, line 85 def self.options request = Net::HTTP::Options.new(@uri.request_uri) request['Authorization'] = "bearer #{@access_token}" request['Content-Type'] = 'application/json' response = @http.request(request) response['Allow'].split(',').map { |x| x.downcase.to_sym } end
patch()
click to toggle source
# File lib/api/request.rb, line 58 def self.patch request = Net::HTTP::Patch.new(@uri.request_uri) request.body = @options.to_json request['Authorization'] = "bearer #{@access_token}" request['Content-Type'] = 'application/json' @http.request(request) end
post()
click to toggle source
# File lib/api/request.rb, line 38 def self.post request = Net::HTTP::Post.new(@uri.request_uri) request.body = @options.to_json request['Authorization'] = "bearer #{@access_token}" request['Content-Type'] = 'application/json' @http.request(request) end
put()
click to toggle source
# File lib/api/request.rb, line 48 def self.put request = Net::HTTP::Put.new(@uri.request_uri) request.body = @options.to_json request['Authorization'] = "bearer #{@access_token}" request['Content-Type'] = 'application/json' @http.request(request) end
request(access_token, uri, options = {})
click to toggle source
# File lib/api/request.rb, line 11 def self.request(access_token, uri, options = {}) @access_token = access_token @uri = URI(uri) @http_method = options[:method] ? options.delete(:method).to_sym : :get @options = options raise HttpMethodError, @http_method unless respond_to?(@http_method) @http = Net::HTTP.new(@uri.host, @uri.port) @http.use_ssl = true send(@http_method) end