Class: MonkeyBusiness::HttpRequest
- Inherits:
-
Object
- Object
- MonkeyBusiness::HttpRequest
- Defined in:
- lib/api/request.rb
Overview
Abstraction of an HTTP request sent to the surveymonkey API
Class Method Summary collapse
- .delete ⇒ Object
- .get ⇒ Object
- .head ⇒ Object
- .options ⇒ Object
- .patch ⇒ Object
- .post ⇒ Object
- .put ⇒ Object
- .request(access_token, uri, options = {}) ⇒ Object
Class Method Details
.delete ⇒ Object
68 69 70 71 72 73 74 75 |
# 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 ⇒ Object
26 27 28 29 30 31 32 33 34 35 36 |
# 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 ⇒ Object
77 78 79 80 81 82 83 |
# 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 ⇒ Object
85 86 87 88 89 90 91 92 93 94 |
# File 'lib/api/request.rb', line 85 def self. 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 ⇒ Object
58 59 60 61 62 63 64 65 66 |
# 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 ⇒ Object
38 39 40 41 42 43 44 45 46 |
# 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 ⇒ Object
48 49 50 51 52 53 54 55 56 |
# 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 = {}) ⇒ Object
11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
# File 'lib/api/request.rb', line 11 def self.request(access_token, uri, = {}) @access_token = access_token @uri = URI(uri) @http_method = [:method] ? .delete(:method).to_sym : :get @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 |