class PicturepathAUI::Response
Attributes
data[R]
messages[R]
order_number[R]
raw[R]
status[R]
Public Class Methods
new(xml)
click to toggle source
# File lib/picturepath_aui/response.rb, line 8 def initialize(xml) @raw = xml @data = parser.parse(xml)[:aui_response] @status = extract_status(@data) @messages = extract_messages(@data) @order_number = extract_order_number(@data) end
Public Instance Methods
error?()
click to toggle source
# File lib/picturepath_aui/response.rb, line 20 def error? status == "ERROR" end
success?()
click to toggle source
# File lib/picturepath_aui/response.rb, line 16 def success? ["SUCCESS", "PARTIAL SUCCESS"].include?(status) end
warning?()
click to toggle source
# File lib/picturepath_aui/response.rb, line 24 def warning? ["WARNING", "GENERAL WARNING"].include?(status) end
Private Instance Methods
extract_messages(data)
click to toggle source
# File lib/picturepath_aui/response.rb, line 42 def extract_messages(data) messages = [data[:status][:message]].flatten.map do |message| return [message.strip] if message.is_a?(String) message[:@description].strip end return messages.flatten end
extract_order_number(data)
click to toggle source
# File lib/picturepath_aui/response.rb, line 51 def extract_order_number(data) return nil if is_check_request?(data) return from_status_message(data) if data[:order_number].nil? data[:order_number] end
extract_status(data)
click to toggle source
# File lib/picturepath_aui/response.rb, line 38 def extract_status(data) return data[:status][:@value] end
from_status_message(data)
click to toggle source
# File lib/picturepath_aui/response.rb, line 57 def from_status_message(data) order_info = /order number (\w+)/.match(data[:status][:message].to_s) return order_info[1] if order_info.is_a?(MatchData) end
is_check_request?(data)
click to toggle source
# File lib/picturepath_aui/response.rb, line 62 def is_check_request?(data) data[:status][:@action] == "CHECK" end
parser()
click to toggle source
# File lib/picturepath_aui/response.rb, line 34 def parser return Nori.new(convert_tags_to: lambda { |tag| tag.snakecase.to_sym }) end