Module: Harvest::Behavior::Crud
- Included in:
- API::Clients, API::Contacts, API::ExpenseCategories, API::Expenses, API::Projects, API::Tasks, API::Users
- Defined in:
- lib/harvest/behavior/crud.rb
Instance Method Summary collapse
-
#all ⇒ Array<Harvest::BaseModel>
Retrieves all items.
-
#create(model) ⇒ Harvest::BaseModel
Creates an item.
-
#delete(model) ⇒ Integer
Deletes an item.
-
#find(id) ⇒ Harvest::BaseModel
Retrieves an item by id.
-
#update(model) ⇒ Harvest::BaseModel
Updates an item.
Instance Method Details
#all ⇒ Array<Harvest::BaseModel>
Retrieves all items
6 7 8 9 |
# File 'lib/harvest/behavior/crud.rb', line 6 def all response = request(:get, credentials, api_model.api_path) api_model.parse(response.body) end |
#create(model) ⇒ Harvest::BaseModel
Creates an item
28 29 30 31 32 |
# File 'lib/harvest/behavior/crud.rb', line 28 def create(model) response = request(:post, credentials, "#{api_model.api_path}", :body => model.to_xml) id = response.headers["location"].first.match(/\/.*\/(\d+)/)[1] find(id) end |
#delete(model) ⇒ Integer #delete(id) ⇒ Integer #delete(id) ⇒ Integer
Deletes an item
51 52 53 54 |
# File 'lib/harvest/behavior/crud.rb', line 51 def delete(model) request(:delete, credentials, "#{api_model.api_path}/#{model.to_i}") model.to_i end |
#find(id) ⇒ Harvest::BaseModel #find(id) ⇒ Harvest::BaseModel #find(model) ⇒ Harvest::BaseModel
Retrieves an item by id
20 21 22 23 |
# File 'lib/harvest/behavior/crud.rb', line 20 def find(id) response = request(:get, credentials, "#{api_model.api_path}/#{id}") api_model.parse(response.body, :single => true) end |
#update(model) ⇒ Harvest::BaseModel
Updates an item
37 38 39 40 |
# File 'lib/harvest/behavior/crud.rb', line 37 def update(model) request(:put, credentials, "#{api_model.api_path}/#{model.to_i}", :body => model.to_xml) find(model.id) end |