Class: SurveyMonkey::Request
- Inherits:
-
Object
- Object
- SurveyMonkey::Request
- Defined in:
- lib/survey_monkey/request.rb
Instance Attribute Summary collapse
-
#api_method ⇒ Object
Returns the value of attribute api_method.
-
#parameters ⇒ Object
Returns the value of attribute parameters.
-
#request ⇒ Object
Returns the value of attribute request.
-
#response ⇒ Object
Returns the value of attribute response.
-
#uri ⇒ Object
Returns the value of attribute uri.
Instance Method Summary collapse
- #build_request ⇒ Object
-
#initialize(options = {}) ⇒ Request
constructor
A new instance of Request.
- #request_body ⇒ Object
- #request_header ⇒ Object
- #request_method ⇒ Object
- #request_params ⇒ Object
- #request_url ⇒ Object
- #result ⇒ Object
- #run_request ⇒ Object
- #set_on_complete_response ⇒ Object
- #set_parameters {|@parameters| ... } ⇒ Object
- #submit ⇒ Object
Constructor Details
#initialize(options = {}) ⇒ Request
Returns a new instance of Request.
5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
# File 'lib/survey_monkey/request.rb', line 5 def initialize(={}) @auth = [:auth] || Auth.new @api_method = [:api_method].to_s @init_parameters = [:params] @api_key = @auth.api_key @access_token = @auth.access_token ### Instantiate Parameters based on API method @parameters = Parameters.new(@api_method) @uri = @parameters.uri # If options[:params] was spet, set parameters now if @init_parameters.respond_to? :each set_parameters do |p| @init_parameters.each do |key,value| p.send "#{key}=", value end end end end |
Instance Attribute Details
#api_method ⇒ Object
Returns the value of attribute api_method.
3 4 5 |
# File 'lib/survey_monkey/request.rb', line 3 def api_method @api_method end |
#parameters ⇒ Object
Returns the value of attribute parameters.
3 4 5 |
# File 'lib/survey_monkey/request.rb', line 3 def parameters @parameters end |
#request ⇒ Object
Returns the value of attribute request.
3 4 5 |
# File 'lib/survey_monkey/request.rb', line 3 def request @request end |
#response ⇒ Object
Returns the value of attribute response.
3 4 5 |
# File 'lib/survey_monkey/request.rb', line 3 def response @response end |
#uri ⇒ Object
Returns the value of attribute uri.
3 4 5 |
# File 'lib/survey_monkey/request.rb', line 3 def uri @uri end |
Instance Method Details
#build_request ⇒ Object
54 55 56 |
# File 'lib/survey_monkey/request.rb', line 54 def build_request @request = Typhoeus::Request.new(request_url, method: request_method, body: request_body, params: request_params, headers: request_header) end |
#request_body ⇒ Object
31 32 33 34 |
# File 'lib/survey_monkey/request.rb', line 31 def request_body ### Params to be included in Body of request, should be a JSON encoded string @parameters.to_json end |
#request_header ⇒ Object
45 46 47 48 |
# File 'lib/survey_monkey/request.rb', line 45 def request_header ### Header includes content-type and access token Hash["Authorization" => "bearer #{access_token}", "Content-Type" => "application/json"] end |
#request_method ⇒ Object
36 37 38 |
# File 'lib/survey_monkey/request.rb', line 36 def request_method @parameters.http_method end |
#request_params ⇒ Object
40 41 42 43 |
# File 'lib/survey_monkey/request.rb', line 40 def request_params ### Params to be URL Encoded Hash['api_key' => api_key] end |
#request_url ⇒ Object
50 51 52 |
# File 'lib/survey_monkey/request.rb', line 50 def request_url uri end |
#result ⇒ Object
93 94 95 |
# File 'lib/survey_monkey/request.rb', line 93 def result JSON.parse @response.body end |
#run_request ⇒ Object
58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 |
# File 'lib/survey_monkey/request.rb', line 58 def run_request request = build_request request.on_complete do |response| if response.success? @response = response elsif response.timed_out? @response = "Response timed out" elsif response.code == 0 # Could not get an http response, something's wrong. @response = response. else # Received a non-successful http response. @response = "HTTP request failed: #{response.code}" end end request.run self end |
#set_on_complete_response ⇒ Object
77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 |
# File 'lib/survey_monkey/request.rb', line 77 def set_on_complete_response @request.on_complete do |response| if response.success? @response = response elsif response.timed_out? @response = "Response timed out" elsif response.code == 0 # Could not get an http response, something's wrong. @response = response. else # Received a non-successful http response. @response = "HTTP request failed: #{response.code}" end end end |
#set_parameters {|@parameters| ... } ⇒ Object
27 28 29 |
# File 'lib/survey_monkey/request.rb', line 27 def set_parameters yield @parameters if block_given? end |
#submit ⇒ Object
97 98 99 100 |
# File 'lib/survey_monkey/request.rb', line 97 def submit run_request result end |