module Invoicexpress::Client::Items
Public Instance Methods
Creates a new item. Regarding item taxes, if the tax name is not found, no tax is applied to that item.
@param item [Invoicexpress::Models::Item] The item to create @return [Invoicexpress::Models::Item] The created item @raise Invoicexpress::Unauthorized
When the client is unauthorized @raise Invoicexpress::UnprocessableEntity
When there are errors on the submission
# File lib/invoicexpress/client/items.rb, line 36 def create_item(item, options={}) raise(ArgumentError, "item has the wrong type") unless item.is_a?(Invoicexpress::Models::Item) params = { :klass => Invoicexpress::Models::Item, :body => item } post("items.xml", params.merge(options)) end
Deletes an item.
@param item [Invoicexpress::Models::Item, String] The item or item id @raise Invoicexpress::Unauthorized
When the client is unauthorized @raise Invoicexpress::NotFound
When the item doesn't exist
# File lib/invoicexpress/client/items.rb, line 62 def delete_item(item, options={}) params = { :klass => Invoicexpress::Models::Item } delete("items/#{id_from_item(item)}.xml", params.merge(options)) end
Returns a specific item.
@param item [Invoicexpress::Models::Item, String] The item or item ID @return [Invoicexpress::Models::Item] The item @raise Invoicexpress::Unauthorized
When the client is unauthorized @raise Invoicexpress::NotFound
When the item doesn't exist
# File lib/invoicexpress/client/items.rb, line 23 def item(item, options={}) params = { :klass => Invoicexpress::Models::Item } get("items/#{id_from_item(item)}.xml", params.merge(options)) end
Returns a list of all your items.
@return [Array<Invoicexpress::Models::Item>] An array with all your items @raise Invoicexpress::Unauthorized
When the client is unauthorized
# File lib/invoicexpress/client/items.rb, line 11 def items(options = {}) params = { :klass => Invoicexpress::Models::Item } get("items.xml", params.merge(options)) end
Updates an item.
@param item [Invoicexpress::Models::Item] The item to update @return [Invoicexpress::Models::Item] The updated item @raise Invoicexpress::Unauthorized
When the client is unauthorized @raise Invoicexpress::NotFound
When the item doesn't exist @raise Invoicexpress::UnprocessableEntity
When there are errors on the submission
# File lib/invoicexpress/client/items.rb, line 50 def update_item(item, options={}) raise(ArgumentError, "item has the wrong type") unless item.is_a?(Invoicexpress::Models::Item) params = { :klass => Invoicexpress::Models::Item, :body => item } put("items/#{item.id}.xml", params.merge(options)) end
Private Instance Methods
# File lib/invoicexpress/client/items.rb, line 68 def id_from_item(item) if item.is_a?(Invoicexpress::Models::Item) item.id elsif item.is_a?(String) item elsif item.is_a?(Integer) item.to_s else raise ArgumentError, "Cannot get item id from #{item}" end end