class Workarea::Avatax::TaxRequest::Response

Attributes

request_order_line_items[R]
request_shipping_line_items[R]
response[R]

Public Class Methods

new(response:, request_order_line_items:, request_shipping_line_items:) click to toggle source
# File lib/workarea/avatax/tax_request/response.rb, line 7
def initialize(response:, request_order_line_items:, request_shipping_line_items:)
  @response = response
  @request_order_line_items = request_order_line_items
  @request_shipping_line_items = request_shipping_line_items
end

Public Instance Methods

body() click to toggle source
# File lib/workarea/avatax/tax_request/response.rb, line 13
def body
  @body ||= Hashie::Mash.new response.body
end
tax_line_for_adjustment(price_adjustment, shipping: nil) click to toggle source
# File lib/workarea/avatax/tax_request/response.rb, line 17
def tax_line_for_adjustment(price_adjustment, shipping: nil)
  return unless success?

  line_number =
    if shipping&.partial?
      request_order_line_items
        .detect { |line_item| line_item.adjustment == price_adjustment && line_item.shipping == shipping }
        .try(:line_number)
    else
      request_order_line_items
        .detect { |line_item| line_item.adjustment == price_adjustment }
        .try(:line_number)
    end

  return unless line_number

  body.lines.detect { |line| line.lineNumber.to_i == line_number }
end
tax_line_for_shipping(shipping) click to toggle source
# File lib/workarea/avatax/tax_request/response.rb, line 36
def tax_line_for_shipping(shipping)
  return unless success?

  line_number = request_shipping_line_items
    .detect { |line_item| line_item.shipping.id == shipping.id }
    .try(:line_number)

  return unless line_number

  body.lines.detect { |line| line.lineNumber.to_i == line_number }
end