Class: PayTrace::API::Response
- Inherits:
-
Object
- Object
- PayTrace::API::Response
- Defined in:
- lib/paytrace/api/response.rb
Instance Attribute Summary collapse
-
#errors ⇒ Object
readonly
Returns the value of attribute errors.
-
#values ⇒ Object
readonly
Returns the value of attribute values.
Instance Method Summary collapse
- #generate_error_key(key, value) ⇒ Object
- #get_error_response ⇒ Object
- #get_response ⇒ Object
- #has_errors? ⇒ Boolean
-
#initialize(response_string, multi_value_fields = []) ⇒ Response
constructor
A new instance of Response.
- #parse_errors(response_string) ⇒ Object
- #parse_response(response_string, multi_value_fields = []) ⇒ Object
- #response_code ⇒ Object
Constructor Details
#initialize(response_string, multi_value_fields = []) ⇒ Response
Returns a new instance of Response.
6 7 8 9 10 11 12 13 |
# File 'lib/paytrace/api/response.rb', line 6 def initialize(response_string, multi_value_fields = []) @field_delim = "|" @value_delim = "~" @multi_value_delim = "+" @values = {} @errors = {} parse_response(response_string, multi_value_fields) end |
Instance Attribute Details
#errors ⇒ Object (readonly)
Returns the value of attribute errors.
4 5 6 |
# File 'lib/paytrace/api/response.rb', line 4 def errors @errors end |
#values ⇒ Object (readonly)
Returns the value of attribute values.
4 5 6 |
# File 'lib/paytrace/api/response.rb', line 4 def values @values end |
Instance Method Details
#generate_error_key(key, value) ⇒ Object
50 51 52 53 |
# File 'lib/paytrace/api/response.rb', line 50 def generate_error_key(key,value) #get the error number from the value return key +'-'+ value[/([1-9]*)/,1] end |
#get_error_response ⇒ Object
62 63 64 65 66 67 68 |
# File 'lib/paytrace/api/response.rb', line 62 def get_error_response() = "" @errors.each do |k,v| << v + "," end end |
#get_response ⇒ Object
55 56 57 58 59 60 |
# File 'lib/paytrace/api/response.rb', line 55 def get_response() if has_errors? return get_error_response() end @values["RESPONSE"] end |
#has_errors? ⇒ Boolean
19 20 21 |
# File 'lib/paytrace/api/response.rb', line 19 def has_errors? @errors.length > 0 end |
#parse_errors(response_string) ⇒ Object
41 42 43 44 45 46 47 48 |
# File 'lib/paytrace/api/response.rb', line 41 def parse_errors(response_string) pairs = response_string.split(@field_delim) pairs.each do |p| k,v = p.split(@value_delim) k = generate_error_key(k,v) @errors[k] = v end end |
#parse_response(response_string, multi_value_fields = []) ⇒ Object
23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
# File 'lib/paytrace/api/response.rb', line 23 def parse_response(response_string, multi_value_fields = []) if (response_string.include? "ERROR") return parse_errors(response_string) end pairs = response_string.split(@field_delim) pairs.each do |p| k,v = p.split(@value_delim) if multi_value_fields.include?(k) @values[k] ||= [] @values[k] << Hash[v.split(@multi_value_delim).map {|pair| pair.split('=')}] else @values[k] = v end end end |
#response_code ⇒ Object
15 16 17 |
# File 'lib/paytrace/api/response.rb', line 15 def response_code get_response end |