class TodoistClient::Item

Constants

VALID_PARAMS

Public Class Methods

complete_all(ids) click to toggle source
# File lib/todoist_client/item.rb, line 122
def complete_all(ids)
  request *Paths::COMPLETE, {ids: json_ids(ids)}
end
completed(project) click to toggle source
# File lib/todoist_client/item.rb, line 95
def completed(project)
  project_id = project.is_a?(Project) ? project.id : project
  request(*Paths::COMPLETED, {project_id: project_id}).map {|item| self.new(item)}
end
completed_items(project = nil) click to toggle source

only premium user

# File lib/todoist_client/item.rb, line 101
def completed_items(project = nil)
  project_id = project.is_a?(Project) ? project.id : project
  request(*Paths::ALL_COMPLETED, {project_id: project_id})["items"].map {|item|
    CompletedItem.new(item)
  }
end
create(params) click to toggle source
# File lib/todoist_client/item.rb, line 114
def create(params)
  self.new(params).save
end
delete_all(ids) click to toggle source
# File lib/todoist_client/item.rb, line 118
def delete_all(ids)
  request *Paths::DELETE, {ids: json_ids(ids)}
end
find(ids) click to toggle source
# File lib/todoist_client/item.rb, line 108
def find(ids)
  items = request(*Paths::FIND, {ids: json_ids(ids)}).map {|item| self.new(item)}
  # return nil or Item object if item does not exist multiple.
  items.size > 1 ? items : items.first
end
json_ids(ids) click to toggle source
# File lib/todoist_client/item.rb, line 130
def json_ids(ids)
  ids = [ids] unless ids.is_a?(Array)
  JSON.generate(ids)
end
new(params = nil) click to toggle source
# File lib/todoist_client/item.rb, line 34
def initialize(params = nil)
  case
  when params.is_a?(String)
    @content = params
  when params.is_a?(Hash)
    set_params(params)
  end
end
uncomplete_all(ids) click to toggle source
# File lib/todoist_client/item.rb, line 126
def uncomplete_all(ids)
  request *Paths::UNCOMPLETE, {ids: json_ids(ids)}
end
uncompleted(project) click to toggle source
# File lib/todoist_client/item.rb, line 90
def uncompleted(project)
  project_id = project.is_a?(Project) ? project.id : project
  request(*Paths::UNCOMPLETED, {project_id: project_id}).map {|item| self.new(item)}
end

Public Instance Methods

complete() click to toggle source
# File lib/todoist_client/item.rb, line 73
def complete
  with_remote_object do
    self.class.request *Paths::COMPLETE, {ids: JSON.generate([id])}
  end
end
delete() click to toggle source
# File lib/todoist_client/item.rb, line 67
def delete
  with_remote_object do
    self.class.request *Paths::DELETE, {ids: JSON.generate([id])}
  end
end
finished?() click to toggle source
# File lib/todoist_client/item.rb, line 85
def finished?
  checked == 1
end
save() click to toggle source
# File lib/todoist_client/item.rb, line 43
def save
  if id
    json = self.class.request *Paths::UPDATE, {
      id: @id, # required
      content: @content,
      priority: @priority,
      indent: @indent,
      item_order: @item_order,
      collapsed: @collapsed
    }.select {|k,v| !v.nil?}
  else
    json = self.class.request *Paths::ADD, {
      content: @content, # required
      project_id: @project_id,
      date_string: @date_string,
      priority: @priority,
      indent: @indent,
      item_order: @item_order
    }.select {|k,v| !v.nil?}
  end
  set_params(json)
  self
end
uncomplete() click to toggle source
# File lib/todoist_client/item.rb, line 79
def uncomplete
  with_remote_object do
    self.class.request *Paths::UNCOMPLETE, {ids: JSON.generate([id])}
  end
end