class Suretax::Api::Response

Attributes

body[R]
client_tracking[R]
groups[R]
item_messages[R]
message[R]
status[R]
total_tax[R]
transaction[R]

Public Class Methods

new(response_body) click to toggle source
# File lib/suretax/api/response.rb, line 9
def initialize(response_body)
  @body = JSON.generate(response_body)
  @status = response_body.fetch("ResponseCode")
  @transaction = response_body.fetch("TransId").to_s
  @message = response_body.fetch("HeaderMessage")
  @success = response_body.fetch("Successful") == "Y"
  @client_tracking = response_body["ClientTracking"] || nil
  @total_tax = Amount.new(response_body["TotalTax"])

  build_groups(response_body)
  build_item_messages(response_body)
end

Public Instance Methods

item_errors?() click to toggle source
# File lib/suretax/api/response.rb, line 26
def item_errors?
  @status == "9001"
end
success?() click to toggle source
# File lib/suretax/api/response.rb, line 22
def success?
  @success
end

Private Instance Methods

build_groups(response_body) click to toggle source
# File lib/suretax/api/response.rb, line 32
def build_groups(response_body)
  @groups = []
  if response_body["GroupList"].respond_to?(:map)
    @groups = response_body.fetch("GroupList").map do |group|
      Group.new(group)
    end
  end
end
build_item_messages(response_body) click to toggle source
# File lib/suretax/api/response.rb, line 41
def build_item_messages(response_body)
  @item_messages = Array(response_body.fetch("ItemMessages", [])).map do |item_message|
    ItemMessage.new(item_message)
  end
end