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
system_unavailable?() click to toggle source
# File lib/picturepath_aui/response.rb, line 28
def system_unavailable?
  status == "SYSTEM UNAVAILABLE"
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