Sha256: b3250bfe5c462f2b59d0ff2477652e0b55ccc749285377ee3428d701e3c5b5a6

Contents?: true

Size: 1.13 KB

Versions: 2

Compression:

Stored size: 1.13 KB

Contents

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

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

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

        response
      end

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

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

        response
      end

      def create(sales_invoice)
        response = Pina::RestAdapter.post(:sales_invoices, sales_invoice)

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

        response
      end

      def update(id, sales_invoice)
        response = Pina::RestAdapter.patch(:sales_invoices, id, sales_invoice)

        return Pina::Models::SalesInvoice.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

2 entries across 2 versions & 1 rubygems

Version Path
pina-0.3.1 lib/pina/sales_invoice.rb
pina-0.2.0 lib/pina/sales_invoice.rb