class Mozenda::Request::Base
Public Class Methods
new(options)
click to toggle source
# File lib/mozenda/request/base.rb, line 4 def initialize options @connection = Mozenda::Infrastructure::Connection.instance end
Public Instance Methods
send!(method = :post)
click to toggle source
# File lib/mozenda/request/base.rb, line 8 def send! method = :post validate! response = @connection.send(method, additional_params) response_class.new(response) end
validate!()
click to toggle source
# File lib/mozenda/request/base.rb, line 14 def validate! required_params.each do |param_name| raise Mozenda::InvalidRequestException.new("Request #{operation}: required param '#{param_name}' is undefined") if additional_params[param_name].nil? end end
Protected Instance Methods
format_status_url(params)
click to toggle source
# File lib/mozenda/request/base.rb, line 28 def format_status_url params status_url = params[:status_url] || "" replacement_values = params[:replacement_values] || [] unless status_url.empty? || replacement_values.empty? uri = URI(status_url) params = URI.decode_www_form(uri.query || "") replacement_values.each do |name| value = Mozenda::REPLACEMENT_VALUES[name] params << [name, value] end uri.query = URI.encode_www_form(params) status_url = uri.to_s Mozenda::REPLACEMENT_VALUES.values.each do |replacement_value| status_url = status_url.gsub(replacement_value, "%#{replacement_value}%") end end status_url end
include_status_url?(params)
click to toggle source
# File lib/mozenda/request/base.rb, line 22 def include_status_url? params status_url = params[:status_url] || "" replacement_values = params[:replacement_values] || [] !(status_url.empty? || replacement_values.empty?) end
Private Instance Methods
additional_params()
click to toggle source
# File lib/mozenda/request/base.rb, line 63 def additional_params @additional_params ||= {"Operation" => operation} end
operation()
click to toggle source
# File lib/mozenda/request/base.rb, line 59 def operation self.class.const_get(:OPERATION) end
put_additional_param(key, value)
click to toggle source
# File lib/mozenda/request/base.rb, line 67 def put_additional_param key, value additional_params[key] = value end
required_params()
click to toggle source
# File lib/mozenda/request/base.rb, line 55 def required_params self.class.const_get(:REQUIRED_PARAMS) end
response_class()
click to toggle source
# File lib/mozenda/request/base.rb, line 49 def response_class class_name = operation.gsub(/\./, "") full_class_name = "Mozenda::Response::#{class_name}" full_class_name.constantize end