Class: Basecamp::Services::TodosService

Inherits:
BaseService show all
Defined in:
lib/basecamp/generated/services/todos_service.rb

Overview

Service for Todos operations

Instance Method Summary collapse

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

Parameters:

  • todo_id (Integer)

    todo id ID



76
77
78
79
80
81
# File 'lib/basecamp/generated/services/todos_service.rb', line 76

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

Parameters:

  • todolist_id (Integer)

    todolist id ID

  • content (String)

    content

  • description (String, nil) (defaults to: nil)

    description

  • assignee_ids (Array, nil) (defaults to: nil)

    assignee ids

  • completion_subscriber_ids (Array, nil) (defaults to: nil)

    completion subscriber ids

  • notify (Boolean, nil) (defaults to: nil)

    notify

  • due_on (String, nil) (defaults to: nil)

    due on (YYYY-MM-DD)

  • starts_on (String, nil) (defaults to: nil)

    starts on (YYYY-MM-DD)

Returns:

  • (Hash)

    response data



32
33
34
35
36
# File 'lib/basecamp/generated/services/todos_service.rb', line 32

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

#get(todo_id:) ⇒ Hash

Get a single todo by id

Parameters:

  • todo_id (Integer)

    todo id ID

Returns:

  • (Hash)

    response data



41
42
43
44
45
# File 'lib/basecamp/generated/services/todos_service.rb', line 41

def get(todo_id:)
  with_operation(service: "todos", operation: "get", is_mutation: false, resource_id: todo_id) do
    http_get("/todos/#{todo_id}").json
  end
end

#list(todolist_id:, status: nil, completed: nil) ⇒ Enumerator<Hash>

List todos in a todolist

Parameters:

  • todolist_id (Integer)

    todolist id ID

  • status (String, nil) (defaults to: nil)

    active|archived|trashed

  • completed (Boolean, nil) (defaults to: nil)

    completed

Returns:

  • (Enumerator<Hash>)

    paginated results



15
16
17
18
19
20
# File 'lib/basecamp/generated/services/todos_service.rb', line 15

def list(todolist_id:, status: nil, completed: nil)
  wrap_paginated(service: "todos", operation: "list", is_mutation: false, resource_id: todolist_id) do
    params = compact_query_params(status: status, completed: completed)
    paginate("/todolists/#{todolist_id}/todos.json", params: params)
  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.

Parameters:

  • todo_id (Integer)

    todo id ID

  • content (String)

    content

  • description (String, nil) (defaults to: nil)

    description

  • assignee_ids (Array, nil) (defaults to: nil)

    assignee ids

  • completion_subscriber_ids (Array, nil) (defaults to: nil)

    completion subscriber ids

  • notify (Boolean, nil) (defaults to: nil)

    notify

  • due_on (String, nil) (defaults to: nil)

    due on (YYYY-MM-DD)

  • starts_on (String, nil) (defaults to: nil)

    starts on (YYYY-MM-DD)

Returns:

  • (Hash)

    response data



57
58
59
60
61
# File 'lib/basecamp/generated/services/todos_service.rb', line 57

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

Parameters:

  • todo_id (Integer)

    todo id ID

  • position (Integer)

    position

  • parent_id (Integer, nil) (defaults to: nil)

    Optional todolist ID to move the todo to a different parent



98
99
100
101
102
103
# File 'lib/basecamp/generated/services/todos_service.rb', line 98

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

#trash(todo_id:) ⇒ void

This method returns an undefined value.

Trash a todo (returns 204 No Content)

Parameters:

  • todo_id (Integer)

    todo id ID



66
67
68
69
70
71
# File 'lib/basecamp/generated/services/todos_service.rb', line 66

def trash(todo_id:)
  with_operation(service: "todos", operation: "trash", is_mutation: true, resource_id: todo_id) do
    http_delete("/todos/#{todo_id}")
    nil
  end
end

#uncomplete(todo_id:) ⇒ void

This method returns an undefined value.

Mark a todo as incomplete

Parameters:

  • todo_id (Integer)

    todo id ID



86
87
88
89
90
91
# File 'lib/basecamp/generated/services/todos_service.rb', line 86

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