Sha256: 223fe26f278bc4c4e2c896a2e4a975960769083375298870cd56229b056b7b3f

Contents?: true

Size: 961 Bytes

Versions: 1

Compression:

Stored size: 961 Bytes

Contents

require 'forwardable'

module ChartMogul
  module Import
    class CustomerInvoices < APIResource
      extend Forwardable
      include Enumerable

      set_resource_name 'Invoices'
      set_resource_path '/v1/import/customers/:customer_uuid/invoices'

      writeable_attr :invoices, default: []

      writeable_attr :customer_uuid

      include API::Actions::All
      include API::Actions::Create

      def serialize_invoices
        map(&:serialize_for_write)
      end

      def_delegators :invoices, :each, :[], :<<, :size, :length

      private

      def set_invoices(invoices_attributes)
        @invoices = invoices_attributes.map.with_index do |invoice_attributes, index|
          existing_invoice = invoices[index]

          if existing_invoice
            existing_invoice.assign_all_attributes(invoice_attributes)
          else
            Invoice.new_from_json(invoice_attributes)
          end
        end
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
chartmogul-ruby-0.1.1 lib/chartmogul/import/customer_invoices.rb