Class: Basecamp::Services::TodosService
- Inherits:
-
BaseService
- Object
- BaseService
- Basecamp::Services::TodosService
- Defined in:
- lib/basecamp/generated/services/todos_service.rb
Overview
Service for Todos operations
Instance Method Summary collapse
-
#complete(todo_id:) ⇒ void
Mark a todo as complete.
-
#create(todolist_id:, content:, description: nil, assignee_ids: nil, completion_subscriber_ids: nil, notify: nil, due_on: nil, starts_on: nil) ⇒ Hash
Create a new todo in a todolist.
-
#create_todoset_todo(bucket_id:, todoset_id:, content:, description: nil, assignee_ids: nil, completion_subscriber_ids: nil, notify: nil, due_on: nil, starts_on: nil) ⇒ Hash
Create a to-do directly under a project's to-do set, outside any to-do list.
-
#get(todo_id:) ⇒ Hash
Get a single todo by id.
-
#list(todolist_id:, status: nil, completed: nil, page: nil, max_items: nil) ⇒ ListEnumerator<Hash>
List todos in a todolist.
-
#replace(todo_id:, content:, description: nil, assignee_ids: nil, completion_subscriber_ids: nil, notify: nil, due_on: nil, starts_on: nil) ⇒ Hash
Replace a todo with a new complete representation.
-
#reposition(todo_id:, position:, parent_id: nil) ⇒ void
Reposition a todo within its todolist.
-
#uncomplete(todo_id:) ⇒ void
Mark a todo as incomplete.
Constructor Details
This class inherits a constructor from Basecamp::Services::BaseService
Instance Method Details
#complete(todo_id:) ⇒ void
This method returns an undefined value.
Mark a todo as complete
85 86 87 88 89 90 |
# File 'lib/basecamp/generated/services/todos_service.rb', line 85 def complete(todo_id:) with_operation(service: "todos", operation: "complete", is_mutation: true, resource_id: todo_id) do http_post("/todos/#{todo_id}/completion.json") nil end end |
#create(todolist_id:, content:, description: nil, assignee_ids: nil, completion_subscriber_ids: nil, notify: nil, due_on: nil, starts_on: nil) ⇒ Hash
Create a new todo in a todolist
51 52 53 54 55 |
# File 'lib/basecamp/generated/services/todos_service.rb', line 51 def create(todolist_id:, content:, description: nil, assignee_ids: nil, completion_subscriber_ids: nil, notify: nil, due_on: nil, starts_on: nil) with_operation(service: "todos", operation: "create", is_mutation: true, resource_id: todolist_id) do http_post("/todolists/#{todolist_id}/todos.json", body: compact_params(content: content, description: description, assignee_ids: assignee_ids, completion_subscriber_ids: completion_subscriber_ids, notify: notify, due_on: due_on, starts_on: starts_on)).json end end |
#create_todoset_todo(bucket_id:, todoset_id:, content:, description: nil, assignee_ids: nil, completion_subscriber_ids: nil, notify: nil, due_on: nil, starts_on: nil) ⇒ Hash
Create a to-do directly under a project's to-do set, outside any to-do list.
21 22 23 24 25 |
# File 'lib/basecamp/generated/services/todos_service.rb', line 21 def create_todoset_todo(bucket_id:, todoset_id:, content:, description: nil, assignee_ids: nil, completion_subscriber_ids: nil, notify: nil, due_on: nil, starts_on: nil) with_operation(service: "todos", operation: "create_todoset_todo", is_mutation: true, project_id: bucket_id, resource_id: todoset_id) do http_post("/buckets/#{bucket_id}/todosets/#{todoset_id}/todos.json", body: compact_params(content: content, description: description, assignee_ids: assignee_ids, completion_subscriber_ids: completion_subscriber_ids, notify: notify, due_on: due_on, starts_on: starts_on)).json end end |
#get(todo_id:) ⇒ Hash
Get a single todo by id
60 61 62 63 64 |
# File 'lib/basecamp/generated/services/todos_service.rb', line 60 def get(todo_id:) with_operation(service: "todos", operation: "get", is_mutation: false, resource_id: todo_id) do http_get("/todos/#{todo_id}", operation: "GetTodo").json end end |
#list(todolist_id:, status: nil, completed: nil, page: nil, max_items: nil) ⇒ ListEnumerator<Hash>
List todos in a todolist
34 35 36 37 38 39 |
# File 'lib/basecamp/generated/services/todos_service.rb', line 34 def list(todolist_id:, status: nil, completed: nil, page: nil, max_items: nil) wrap_paginated(service: "todos", operation: "list", is_mutation: false, resource_id: todolist_id) do params = compact_query_params(status: status, completed: completed, page: page) paginate("/todolists/#{todolist_id}/todos.json", params: params, operation: "ListTodos", max_items: max_items) end end |
#replace(todo_id:, content:, description: nil, assignee_ids: nil, completion_subscriber_ids: nil, notify: nil, due_on: nil, starts_on: nil) ⇒ Hash
Replace a todo with a new complete representation.
76 77 78 79 80 |
# File 'lib/basecamp/generated/services/todos_service.rb', line 76 def replace(todo_id:, content:, description: nil, assignee_ids: nil, completion_subscriber_ids: nil, notify: nil, due_on: nil, starts_on: nil) with_operation(service: "todos", operation: "replace", is_mutation: true, resource_id: todo_id) do http_put("/todos/#{todo_id}", body: compact_params(content: content, description: description, assignee_ids: assignee_ids, completion_subscriber_ids: completion_subscriber_ids, notify: notify, due_on: due_on, starts_on: starts_on)).json end end |
#reposition(todo_id:, position:, parent_id: nil) ⇒ void
This method returns an undefined value.
Reposition a todo within its todolist
107 108 109 110 111 112 |
# File 'lib/basecamp/generated/services/todos_service.rb', line 107 def reposition(todo_id:, position:, parent_id: nil) with_operation(service: "todos", operation: "reposition", is_mutation: true, resource_id: todo_id) do http_put("/todos/#{todo_id}/position.json", body: compact_params(position: position, parent_id: parent_id)) nil end end |
#uncomplete(todo_id:) ⇒ void
This method returns an undefined value.
Mark a todo as incomplete
95 96 97 98 99 100 |
# File 'lib/basecamp/generated/services/todos_service.rb', line 95 def uncomplete(todo_id:) with_operation(service: "todos", operation: "uncomplete", is_mutation: true, resource_id: todo_id) do http_delete("/todos/#{todo_id}/completion.json") nil end end |