class SurveyMonkey::Request
Attributes
api_method[RW]
parameters[RW]
request[RW]
response[RW]
uri[RW]
Public Class Methods
new(options={})
click to toggle source
# File lib/survey_monkey/request.rb, line 5 def initialize(options={}) @auth = options[:auth] || Auth.new @api_method = options[:api_method].to_s @init_parameters = options[: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
Public Instance Methods
build_request()
click to toggle source
# 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()
click to toggle source
# 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()
click to toggle source
# 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()
click to toggle source
# File lib/survey_monkey/request.rb, line 36 def request_method @parameters.http_method end
request_params()
click to toggle source
# File lib/survey_monkey/request.rb, line 40 def request_params ### Params to be URL Encoded Hash['api_key' => api_key] end
request_url()
click to toggle source
# File lib/survey_monkey/request.rb, line 50 def request_url uri end
result()
click to toggle source
# File lib/survey_monkey/request.rb, line 93 def result JSON.parse @response.body end
run_request()
click to toggle source
# 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.return_message else # Received a non-successful http response. @response = "HTTP request failed: #{response.code}" end end request.run self end
set_on_complete_response()
click to toggle source
# 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.return_message else # Received a non-successful http response. @response = "HTTP request failed: #{response.code}" end end end
set_parameters() { |parameters| ... }
click to toggle source
# File lib/survey_monkey/request.rb, line 27 def set_parameters yield @parameters if block_given? end
submit()
click to toggle source
# File lib/survey_monkey/request.rb, line 97 def submit run_request result end
Private Instance Methods
access_token()
click to toggle source
# File lib/survey_monkey/request.rb, line 107 def access_token @access_token end
api_key()
click to toggle source
# File lib/survey_monkey/request.rb, line 103 def api_key @api_key end