Sha256: 9fca965fea6d3dceef71b56e35ce2a35f34bf8aff67bc942fd9b48f6e43f92b7

Contents?: true

Size: 1.51 KB

Versions: 3

Compression:

Stored size: 1.51 KB

Contents

require 'pina/models/purchase_item'
require 'pina/models/purchase_invoice'
require 'pina/collections/purchase_invoice'

module Pina
  class PurchaseInvoice
    class << self
      def new(params = nil)
        Pina::Models::PurchaseInvoice.new(params)
      end

      def find(id)
        response = Pina::RestAdapter.get(:purchase_invoices, id)

        return Pina::Models::PurchaseInvoice.new(attributes(response)) if
          response.ok?

        response
      end

      def all(page = nil)
        response = Pina::RestAdapter.get(:purchase_invoices, page)

        return Pina::Collections::PurchaseInvoice.new(attributes(response)) if
          response.ok?

        response
      end

      def where(hash, _page = nil)
        response = Pina::RestAdapter.get(:purchase_invoices, hash)

        return Pina::Collections::PurchaseInvoice.new(attributes(response)) if
          response.ok?

        response
      end

      def create(purchase_invoice)
        response = Pina::RestAdapter.post(:purchase_invoices, purchase_invoice)

        return Pina::Models::PurchaseInvoice.new(attributes(response)) if
          response.ok?

        response
      end

      def update(id, purchase_invoice)
        response = Pina::RestAdapter.patch(:purchase_invoices, id, purchase_invoice)

        return Pina::Models::PurchaseInvoice.new(attributes(response)) if
          response.ok?

        response
      end

      private

      def attributes(response)
        response.to_hash.merge(response: response)
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
pina-0.14.4 lib/pina/purchase_invoice.rb
pina-0.14.3 lib/pina/purchase_invoice.rb
pina-0.14.2 lib/pina/purchase_invoice.rb