Class: Basecamp::Services::TodolistGroupsService

Inherits:
BaseService
  • Object
show all
Defined in:
lib/basecamp/generated/services/todolist_groups_service.rb

Overview

Service for TodolistGroups operations

Instance Method Summary collapse

Constructor Details

This class inherits a constructor from Basecamp::Services::BaseService

Instance Method Details

#create(todolist_id:, name:) ⇒ Hash

Create a new group in a todolist

Parameters:

  • todolist_id (Integer)

    todolist id ID

  • name (String)

    name

Returns:

  • (Hash)

    response data



37
38
39
40
41
# File 'lib/basecamp/generated/services/todolist_groups_service.rb', line 37

def create(todolist_id:, name:)
  with_operation(service: "todolistgroups", operation: "create", is_mutation: true, resource_id: todolist_id) do
    http_post("/todolists/#{todolist_id}/groups.json", body: compact_params(name: name)).json
  end
end

#list(todolist_id:, page: nil, max_items: nil) ⇒ ListEnumerator<Hash>

List groups in a todolist

Parameters:

  • todolist_id (Integer)

    todolist id ID

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

    Page number for paginating through results. Defaults to 1. A positive value selects exactly that page, not a starting offset; see SPEC section 8.

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

    cap on items yielded across pages; nil or non-positive means no cap

Returns:

  • (ListEnumerator<Hash>)

    lazily paginated results (#meta carries pagination metadata)



26
27
28
29
30
31
# File 'lib/basecamp/generated/services/todolist_groups_service.rb', line 26

def list(todolist_id:, page: nil, max_items: nil)
  wrap_paginated(service: "todolistgroups", operation: "list", is_mutation: false, resource_id: todolist_id) do
    params = compact_query_params(page: page)
    paginate("/todolists/#{todolist_id}/groups.json", params: params, operation: "ListTodolistGroups", max_items: max_items)
  end
end

#reposition(group_id:, position:) ⇒ void

This method returns an undefined value.

Reposition a todolist group

Parameters:

  • group_id (Integer)

    group id ID

  • position (Integer)

    position



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

def reposition(group_id:, position:)
  with_operation(service: "todolistgroups", operation: "reposition", is_mutation: true, resource_id: group_id) do
    http_put("/todolists/groups/#{group_id}/position.json", body: compact_params(position: position))
    nil
  end
end