Sha256: 577fdd0775133ca122eb7d28f3f630bdef1218af1fc3c6069d775c48faa3e238

Contents?: true

Size: 1.74 KB

Versions: 5

Compression:

Stored size: 1.74 KB

Contents

module XeroGateway
  class Response
    attr_accessor :response_id, :status, :errors, :provider, :date_time, :response_item, :request_params, :request_xml, :response_xml

    def array_wrapped_response_item
      Array(response_item)
    end

    alias_method :invoice,              :response_item
    alias_method :credit_note,          :response_item
    alias_method :bank_transaction,     :response_item
    alias_method :manual_journal,       :response_item
    alias_method :contact,              :response_item
    alias_method :contact_group,        :response_item
    alias_method :organisation,         :response_item
    alias_method :report,               :response_item
    alias_method :contact_groups,       :array_wrapped_response_item
    alias_method :invoices,             :array_wrapped_response_item
    alias_method :credit_notes,         :array_wrapped_response_item
    alias_method :bank_transactions,    :array_wrapped_response_item
    alias_method :manual_journals,      :array_wrapped_response_item
    alias_method :contacts,             :array_wrapped_response_item
    alias_method :accounts,             :array_wrapped_response_item
    alias_method :tracking_categories,  :array_wrapped_response_item
    alias_method :tax_rates,            :array_wrapped_response_item
    alias_method :items,            :array_wrapped_response_item
    alias_method :currencies,           :array_wrapped_response_item
    alias_method :payments,             :array_wrapped_response_item

    def initialize(params = {})
      params.each do |k,v|
        self.send("#{k}=", v)
      end

      @errors ||= []
      @response_item ||= []
    end


    def success?
      status == "OK"
    end

    def error
      errors.blank? ? nil : errors[0]
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
xero_gateway-2.7.0 lib/xero_gateway/response.rb
xero_gateway-2.6.0 lib/xero_gateway/response.rb
xero_gateway-2.5.0 lib/xero_gateway/response.rb
xero_gateway-2.4.0 lib/xero_gateway/response.rb
xero_gateway-2.3.0 lib/xero_gateway/response.rb