Class: Todoist::Sync::Items
- Inherits:
-
Todoist::Service
- Object
- Todoist::Service
- Todoist::Sync::Items
- Includes:
- Util
- Defined in:
- lib/todoist/sync/items.rb
Instance Method Summary collapse
-
#add(args) ⇒ Object
Add a item with a given hash of attributes and returns the item id.
-
#close(item) ⇒ Object
A simplified version of item_complete / item_update_date_complete.
-
#collection ⇒ Object
Return a Hash of items where key is the id of a item and value is a item.
-
#complete(item, force_history = 1) ⇒ Object
Complete an item and optionally move them to history.
-
#complete_recurring(item, new_date_utc = nil, date_string = nil, is_forward = 1) ⇒ Object
Complete a recurring item given the id of the recurring item.
-
#delete(item_id) ⇒ Object
Delete an item given an item id.
-
#move(item, project) ⇒ Object
Move an item from one project to another project given an item and a project.
-
#uncomplete(item) ⇒ Object
Uncomplete item and move them to the active projects.
-
#update(args) ⇒ Object
Update item given a hash of attributes.
-
#update_day_orders(items) ⇒ Object
Update the day orders of multiple items at once given an array of items.
-
#update_multiple_orders_and_indents(items) ⇒ Object
Update orders and indents for an array of items.
Methods inherited from Todoist::Service
Constructor Details
This class inherits a constructor from Todoist::Service
Instance Method Details
#add(args) ⇒ Object
Add a item with a given hash of attributes and returns the item id
12 13 14 |
# File 'lib/todoist/sync/items.rb', line 12 def add(args) return @client.api_helper.add(args, "item_add") end |
#close(item) ⇒ Object
A simplified version of item_complete / item_update_date_complete. The command does exactly what official clients do when you close a item given an item.
74 75 76 77 |
# File 'lib/todoist/sync/items.rb', line 74 def close(item) args = {id: item.id} return @client.api_helper.command(args, "item_close") end |
#collection ⇒ Object
Return a Hash of items where key is the id of a item and value is a item
7 8 9 |
# File 'lib/todoist/sync/items.rb', line 7 def collection return @client.api_helper.collection("items") end |
#complete(item, force_history = 1) ⇒ Object
Complete an item and optionally move them to history. When force_history = 1, items should be moved to history (where 1 is true and 0 is false, and the default is 1) This is useful when checking off sub items.
37 38 39 40 |
# File 'lib/todoist/sync/items.rb', line 37 def complete(item, force_history=1) args = {id: item.id, force_history: force_history} return @client.api_helper.command(args, "item_complete") end |
#complete_recurring(item, new_date_utc = nil, date_string = nil, is_forward = 1) ⇒ Object
Complete a recurring item given the id of the recurring item. This method also accepts as optional a new DateTime in UTC, a date string to reset the object to, and whether or not the item is to be completed or not using the is_forward flag.
54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 |
# File 'lib/todoist/sync/items.rb', line 54 def complete_recurring(item, new_date_utc = nil, date_string = nil, is_forward = 1) args = {id: item.id, is_forward: is_forward} if new_date_utc # Reformat DateTime to the following string: YYYY-MM-DDTHH:MM args["due"] = {date: ParseHelper.format_time(new_date_utc)} end if date_string args["due"] = {string: date_string} end return @client.api_helper.command(args, "item_update_date_complete") end |
#delete(item_id) ⇒ Object
Delete an item given an item id
22 23 24 25 |
# File 'lib/todoist/sync/items.rb', line 22 def delete(item_id) args = {id: item_id} return @client.api_helper.command(args, "item_delete") end |
#move(item, project) ⇒ Object
Move an item from one project to another project given an item and a project. Note that move requires a fully inflated item object because it uses the project id in the item object.
30 31 32 33 |
# File 'lib/todoist/sync/items.rb', line 30 def move(item, project) args = {id: item.id, project_id: project.id} return @client.api_helper.command(args, "item_move") end |
#uncomplete(item) ⇒ Object
Uncomplete item and move them to the active projects
44 45 46 47 |
# File 'lib/todoist/sync/items.rb', line 44 def uncomplete(item) args = {id: item.id} return @client.api_helper.command(args, "item_uncomplete") end |
#update(args) ⇒ Object
Update item given a hash of attributes
17 18 19 |
# File 'lib/todoist/sync/items.rb', line 17 def update(args) return @client.api_helper.command(args, "item_update") end |
#update_day_orders(items) ⇒ Object
Update the day orders of multiple items at once given an array of items
81 82 83 84 85 86 87 88 |
# File 'lib/todoist/sync/items.rb', line 81 def update_day_orders(items) ids_to_orders = {} items.each do |item| ids_to_orders[item.id] = item.day_order end args = {ids_to_orders: ids_to_orders.to_json} return @client.api_helper.command(args, "item_update_day_orders") end |
#update_multiple_orders_and_indents(items) ⇒ Object
Update orders and indents for an array of items
91 92 93 94 95 96 97 98 |
# File 'lib/todoist/sync/items.rb', line 91 def update_multiple_orders_and_indents(items) tuples = {} items.each do |item| tuples[item.id] = [item.item_order, item.indent] end args = {ids_to_orders_indents: tuples.to_json} return @client.api_helper.command(args, "item_update_orders_indents") end |