Sha256: e667d1800839a0f995601d9e31a3db401098f8ebcf8ee32360f52064e751cc99

Contents?: true

Size: 1.45 KB

Versions: 11

Compression:

Stored size: 1.45 KB

Contents

module Nova
  module API
    module Resource
      class Receivable < Nova::API::Resource::Bill
        ALLOWED_ATTRIBUTES = Nova::API::Resource::Bill::ALLOWED_ATTRIBUTES.dup << :gross_value

        attribute? :gross_value, Dry::Types['coercible.float'].optional

        def self.endpoint
          '/api/receivables'
        end

        def self.list(parameters = {})
          do_get_search(endpoint, parameters.to_h)
        end

        def self.create(parameters)
          model = new parameters

          model.attributes.delete(:id)

          model.save
        end

        def self.update(id, parameters)
          model = new parameters.merge(id: id)

          model.update
        end

        def self.destroy(id)
          model = initialize_empty_model_with_id(self, id, date: Date.today.iso8601, first_due_date: Date.today.iso8601)

          model.destroy
        end

        def endpoint
          protect_operation_from_missing_value

          "/api/receivables/#{id}"
        end

        def save
          if id.nil?
            do_post(self.class.endpoint, allowed_attributes)
          else
            do_patch("#{endpoint}", allowed_attributes)
          end
        end

        def update
          protect_operation_from_missing_value

          do_patch("#{endpoint}", allowed_attributes)
        end

        def destroy
          protect_operation_from_missing_value

          do_delete("#{endpoint}")
        end
      end
    end
  end
end

Version data entries

11 entries across 11 versions & 1 rubygems

Version Path
nova-api-1.4.6 lib/nova/api/resource/receivable.rb
nova-api-1.4.5 lib/nova/api/resource/receivable.rb
nova-api-1.4.3 lib/nova/api/resource/receivable.rb
nova-api-1.4.1 lib/nova/api/resource/receivable.rb
nova-api-1.4.0 lib/nova/api/resource/receivable.rb
nova-api-1.3.0 lib/nova/api/resource/receivable.rb
nova-api-1.2.0 lib/nova/api/resource/receivable.rb
nova-api-1.1.0 lib/nova/api/resource/receivable.rb
nova-api-1.0.0 lib/nova/api/resource/receivable.rb
nova-api-0.8.0 lib/nova/api/resource/receivable.rb
nova-api-0.7.0 lib/nova/api/resource/receivable.rb