Class: PayTrace::API::Request
- Inherits:
-
Object
- Object
- PayTrace::API::Request
- Defined in:
- lib/paytrace/api/request.rb
Instance Attribute Summary collapse
-
#discretionary_data ⇒ Object
readonly
Returns the value of attribute discretionary_data.
-
#field_delim ⇒ Object
readonly
Returns the value of attribute field_delim.
-
#params ⇒ Object
readonly
Returns the value of attribute params.
-
#value_delim ⇒ Object
readonly
Returns the value of attribute value_delim.
Instance Method Summary collapse
-
#initialize ⇒ Request
constructor
A new instance of Request.
- #set_discretionary(k, v = nil) ⇒ Object
- #set_multivalue(param_name, items = {}) ⇒ Object
- #set_param(k, v) ⇒ Object
- #set_params(keys, params) ⇒ Object
- #to_parms_string ⇒ Object
- #validate_param(k, v) ⇒ Object
Constructor Details
#initialize ⇒ Request
Returns a new instance of Request.
6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
# File 'lib/paytrace/api/request.rb', line 6 def initialize @field_delim = "|" @multi_field_delim = "+" @value_delim = "~" @multi_value_delim = "=" @params= { user_name: [PayTrace.configuration.user_name], password: [PayTrace.configuration.password], terms: ["Y"] } @discretionary_data = {} end |
Instance Attribute Details
#discretionary_data ⇒ Object (readonly)
Returns the value of attribute discretionary_data.
4 5 6 |
# File 'lib/paytrace/api/request.rb', line 4 def discretionary_data @discretionary_data end |
#field_delim ⇒ Object (readonly)
Returns the value of attribute field_delim.
4 5 6 |
# File 'lib/paytrace/api/request.rb', line 4 def field_delim @field_delim end |
#params ⇒ Object (readonly)
Returns the value of attribute params.
4 5 6 |
# File 'lib/paytrace/api/request.rb', line 4 def params @params end |
#value_delim ⇒ Object (readonly)
Returns the value of attribute value_delim.
4 5 6 |
# File 'lib/paytrace/api/request.rb', line 4 def value_delim @value_delim end |
Instance Method Details
#set_discretionary(k, v = nil) ⇒ Object
37 38 39 40 41 42 43 |
# File 'lib/paytrace/api/request.rb', line 37 def set_discretionary(k, v = nil) if k.is_a?(Hash) @discretionary_data = k else @discretionary_data[k] = v unless v.nil? end end |
#set_multivalue(param_name, items = {}) ⇒ Object
59 60 61 62 63 64 65 66 67 68 |
# File 'lib/paytrace/api/request.rb', line 59 def set_multivalue(param_name, items = {}) result = (items.map do |k,v| validate_param(k, v) "#{PayTrace::API.fields[k]}#{@multi_value_delim}#{v}" end.join(@multi_field_delim)) set_param(param_name, result) result end |
#set_param(k, v) ⇒ Object
49 50 51 52 53 54 55 56 57 |
# File 'lib/paytrace/api/request.rb', line 49 def set_param(k, v) validate_param(k, v) unless v.nil? @params[k] ||= [] @params[k] << v end end |
#set_params(keys, params) ⇒ Object
70 71 72 73 74 |
# File 'lib/paytrace/api/request.rb', line 70 def set_params(keys, params) keys.each do |key| set_param(key, params[key]) end end |
#to_parms_string ⇒ Object
21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
# File 'lib/paytrace/api/request.rb', line 21 def to_parms_string() raw_request = @params.map do |k,items| items.map do |item| "#{PayTrace::API.fields[k]}#{@value_delim}#{item}" end end.join(@field_delim) << @field_delim if @discretionary_data.any? raw_request << @discretionary_data.map do |k,v| "#{k}#{@value_delim}#{v}" end.join(@field_delim) << @field_delim end raw_request end |
#validate_param(k, v) ⇒ Object
45 46 47 |
# File 'lib/paytrace/api/request.rb', line 45 def validate_param(k, v) raise PayTrace::Exceptions::ValidationError.new("Unknown field '#{k}'") unless PayTrace::API.fields.has_key?(k) end |