class Qualtrics::Operation
Constants
- REQUEST_METHOD_WHITELIST
Attributes
action[R]
command[R]
entity_name[R]
http_method[R]
options[R]
Public Class Methods
add_listener(listener)
click to toggle source
# File lib/qualtrics/operation.rb, line 53 def add_listener(listener) @@listeners << listener end
delete_listener(listener)
click to toggle source
# File lib/qualtrics/operation.rb, line 57 def delete_listener(listener) @@listeners.delete(listener) end
flush_listeners!()
click to toggle source
# File lib/qualtrics/operation.rb, line 61 def flush_listeners! @@listeners = [] end
new(http_method, action, options, body_override = nil)
click to toggle source
# File lib/qualtrics/operation.rb, line 7 def initialize(http_method, action, options, body_override = nil) @http_method = http_method @action = action @options = options @entity_name = action.gsub(/(create|delete|update)/, '') @body_override = body_override @command = $1 end
Public Instance Methods
disable_listeners(&block)
click to toggle source
# File lib/qualtrics/operation.rb, line 46 def disable_listeners(&block) @listeners_disabled = true block.call(self) @listeners_disabled = nil end
issue_request()
click to toggle source
# File lib/qualtrics/operation.rb, line 16 def issue_request raise Qualtrics::UnexpectedRequestMethod if !REQUEST_METHOD_WHITELIST.include?(http_method) query = default_params.dup.merge(options) query['Request'] = action body = nil query_params = {} raw_resp = nil if @body_override body = @body_override query_params = query raw_resp = connection.send(http_method, path, body) do |req| req.params = query_params end else body = query raw_resp = connection.send(http_method, path, body) end Qualtrics::Response.new(raw_resp).tap do |response| if !@listeners_disabled @@listeners.each do |listener| listener.received_response(self, response) end end end end
Protected Instance Methods
configuration()
click to toggle source
# File lib/qualtrics/operation.rb, line 88 def configuration Qualtrics.configuration end
connection()
click to toggle source
# File lib/qualtrics/operation.rb, line 71 def connection @connection ||= Faraday.new(:url => 'https://survey.qualtrics.com') do |faraday| faraday.request :url_encoded faraday.use ::FaradayMiddleware::FollowRedirects, limit: 3 faraday.adapter Faraday.default_adapter end end
default_params()
click to toggle source
# File lib/qualtrics/operation.rb, line 79 def default_params { 'User' => configuration.user, 'Token' => configuration.token, 'Version' => configuration.version, 'Format' => 'JSON' } end
path()
click to toggle source
# File lib/qualtrics/operation.rb, line 67 def path '/WRAPI/ControlPanel/api.php' end