basecamp-sdk 0.11.0 → 0.13.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +127 -8
- data/lib/basecamp/client.rb +55 -11
- data/lib/basecamp/config.rb +69 -0
- data/lib/basecamp/generated/metadata.json +443 -133
- data/lib/basecamp/generated/services/base_service.rb +37 -16
- data/lib/basecamp/generated/services/bookmarks_service.rb +50 -0
- data/lib/basecamp/generated/services/boosts_service.rb +12 -6
- data/lib/basecamp/generated/services/calendars_service.rb +30 -0
- data/lib/basecamp/generated/services/campfires_service.rb +54 -41
- data/lib/basecamp/generated/services/cards_service.rb +6 -3
- data/lib/basecamp/generated/services/checkins_service.rb +28 -15
- data/lib/basecamp/generated/services/client_approvals_service.rb +8 -5
- data/lib/basecamp/generated/services/client_correspondences_service.rb +8 -5
- data/lib/basecamp/generated/services/client_replies_service.rb +12 -7
- data/lib/basecamp/generated/services/cloud_files_service.rb +57 -0
- data/lib/basecamp/generated/services/comments_service.rb +6 -3
- data/lib/basecamp/generated/services/documents_service.rb +9 -6
- data/lib/basecamp/generated/services/drafts_service.rb +22 -0
- data/lib/basecamp/generated/services/events_service.rb +6 -3
- data/lib/basecamp/generated/services/everything_service.rb +116 -69
- data/lib/basecamp/generated/services/folders_service.rb +62 -0
- data/lib/basecamp/generated/services/forwards_service.rb +12 -17
- data/lib/basecamp/generated/services/gauges_service.rb +12 -7
- data/lib/basecamp/generated/services/google_documents_service.rb +61 -0
- data/lib/basecamp/generated/services/message_types_service.rb +4 -3
- data/lib/basecamp/generated/services/messages_service.rb +6 -4
- data/lib/basecamp/generated/services/my_assignments_service.rb +31 -0
- data/lib/basecamp/generated/services/my_notes_service.rb +28 -0
- data/lib/basecamp/generated/services/my_notifications_service.rb +8 -5
- data/lib/basecamp/generated/services/people_service.rb +17 -10
- data/lib/basecamp/generated/services/projects_service.rb +26 -4
- data/lib/basecamp/generated/services/recordings_service.rb +6 -13
- data/lib/basecamp/generated/services/reports_service.rb +15 -9
- data/lib/basecamp/generated/services/schedules_service.rb +90 -16
- data/lib/basecamp/generated/services/search_service.rb +6 -4
- data/lib/basecamp/generated/services/templates_service.rb +6 -4
- data/lib/basecamp/generated/services/timeline_service.rb +6 -3
- data/lib/basecamp/generated/services/timesheets_service.rb +22 -8
- data/lib/basecamp/generated/services/todolist_groups_service.rb +7 -4
- data/lib/basecamp/generated/services/todolists_service.rb +11 -9
- data/lib/basecamp/generated/services/todos_service.rb +23 -14
- data/lib/basecamp/generated/services/uploads_service.rb +10 -6
- data/lib/basecamp/generated/services/vaults_service.rb +6 -3
- data/lib/basecamp/generated/services/webhooks_service.rb +4 -3
- data/lib/basecamp/generated/types.rb +847 -147
- data/lib/basecamp/http.rb +346 -163
- data/lib/basecamp/list_enumerator.rb +29 -0
- data/lib/basecamp/list_meta.rb +44 -0
- data/lib/basecamp/services/cards_extensions.rb +35 -27
- data/lib/basecamp/services/documents_extensions.rb +136 -0
- data/lib/basecamp/services/merge_safe.rb +255 -0
- data/lib/basecamp/services/schedules_extensions.rb +354 -0
- data/lib/basecamp/services/todolists_extensions.rb +274 -0
- data/lib/basecamp/services/todos_extensions.rb +22 -6
- data/lib/basecamp/validation_error.rb +11 -1
- data/lib/basecamp/version.rb +2 -2
- data/lib/basecamp.rb +94 -4
- data/scripts/generate-services.rb +74 -25
- data/scripts/generate-types.rb +2 -1
- data/scripts/go_type_spellings.rb +26 -0
- metadata +16 -2
|
@@ -7,15 +7,34 @@ module Basecamp
|
|
|
7
7
|
# @generated from OpenAPI spec
|
|
8
8
|
class TodosService < BaseService
|
|
9
9
|
|
|
10
|
+
# Create a to-do directly under a project's to-do set, outside any to-do list.
|
|
11
|
+
# @param bucket_id [Integer] bucket id ID
|
|
12
|
+
# @param todoset_id [Integer] todoset id ID
|
|
13
|
+
# @param content [String] content
|
|
14
|
+
# @param description [String, nil] description
|
|
15
|
+
# @param assignee_ids [Array, nil] assignee ids
|
|
16
|
+
# @param completion_subscriber_ids [Array, nil] completion subscriber ids
|
|
17
|
+
# @param notify [Boolean, nil] notify
|
|
18
|
+
# @param due_on [String, nil] due on (YYYY-MM-DD)
|
|
19
|
+
# @param starts_on [String, nil] starts on (YYYY-MM-DD)
|
|
20
|
+
# @return [Hash] response data
|
|
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)
|
|
22
|
+
with_operation(service: "todos", operation: "create_todoset_todo", is_mutation: true, project_id: bucket_id, resource_id: todoset_id) do
|
|
23
|
+
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
|
|
24
|
+
end
|
|
25
|
+
end
|
|
26
|
+
|
|
10
27
|
# List todos in a todolist
|
|
11
28
|
# @param todolist_id [Integer] todolist id ID
|
|
12
29
|
# @param status [String, nil] active|archived|trashed
|
|
13
30
|
# @param completed [Boolean, nil] completed
|
|
14
|
-
# @
|
|
15
|
-
|
|
31
|
+
# @param page [Integer, 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.
|
|
32
|
+
# @param max_items [Integer, nil] cap on items yielded across pages; nil or non-positive means no cap
|
|
33
|
+
# @return [ListEnumerator<Hash>] lazily paginated results (#meta carries pagination metadata)
|
|
34
|
+
def list(todolist_id:, status: nil, completed: nil, page: nil, max_items: nil)
|
|
16
35
|
wrap_paginated(service: "todos", operation: "list", is_mutation: false, resource_id: todolist_id) do
|
|
17
|
-
params = compact_query_params(status: status, completed: completed)
|
|
18
|
-
paginate("/todolists/#{todolist_id}/todos.json", params: params, operation: "ListTodos")
|
|
36
|
+
params = compact_query_params(status: status, completed: completed, page: page)
|
|
37
|
+
paginate("/todolists/#{todolist_id}/todos.json", params: params, operation: "ListTodos", max_items: max_items)
|
|
19
38
|
end
|
|
20
39
|
end
|
|
21
40
|
|
|
@@ -60,16 +79,6 @@ module Basecamp
|
|
|
60
79
|
end
|
|
61
80
|
end
|
|
62
81
|
|
|
63
|
-
# Trash a todo (returns 204 No Content)
|
|
64
|
-
# @param todo_id [Integer] todo id ID
|
|
65
|
-
# @return [void]
|
|
66
|
-
def trash(todo_id:)
|
|
67
|
-
with_operation(service: "todos", operation: "trash", is_mutation: true, resource_id: todo_id) do
|
|
68
|
-
http_delete("/todos/#{todo_id}")
|
|
69
|
-
nil
|
|
70
|
-
end
|
|
71
|
-
end
|
|
72
|
-
|
|
73
82
|
# Mark a todo as complete
|
|
74
83
|
# @param todo_id [Integer] todo id ID
|
|
75
84
|
# @return [void]
|
|
@@ -29,19 +29,23 @@ module Basecamp
|
|
|
29
29
|
|
|
30
30
|
# List versions of an upload
|
|
31
31
|
# @param upload_id [Integer] upload id ID
|
|
32
|
-
# @
|
|
33
|
-
|
|
32
|
+
# @param max_items [Integer, nil] cap on items yielded across pages; nil or non-positive means no cap
|
|
33
|
+
# @return [ListEnumerator<Hash>] lazily paginated results (#meta carries pagination metadata)
|
|
34
|
+
def list_versions(upload_id:, max_items: nil)
|
|
34
35
|
wrap_paginated(service: "uploads", operation: "list_versions", is_mutation: false, resource_id: upload_id) do
|
|
35
|
-
paginate("/uploads/#{upload_id}/versions.json", operation: "ListUploadVersions")
|
|
36
|
+
paginate("/uploads/#{upload_id}/versions.json", operation: "ListUploadVersions", max_items: max_items)
|
|
36
37
|
end
|
|
37
38
|
end
|
|
38
39
|
|
|
39
40
|
# List uploads in a vault
|
|
40
41
|
# @param vault_id [Integer] vault id ID
|
|
41
|
-
# @
|
|
42
|
-
|
|
42
|
+
# @param page [Integer, 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.
|
|
43
|
+
# @param max_items [Integer, nil] cap on items yielded across pages; nil or non-positive means no cap
|
|
44
|
+
# @return [ListEnumerator<Hash>] lazily paginated results (#meta carries pagination metadata)
|
|
45
|
+
def list(vault_id:, page: nil, max_items: nil)
|
|
43
46
|
wrap_paginated(service: "uploads", operation: "list", is_mutation: false, resource_id: vault_id) do
|
|
44
|
-
|
|
47
|
+
params = compact_query_params(page: page)
|
|
48
|
+
paginate("/vaults/#{vault_id}/uploads.json", params: params, operation: "ListUploads", max_items: max_items)
|
|
45
49
|
end
|
|
46
50
|
end
|
|
47
51
|
|
|
@@ -28,10 +28,13 @@ module Basecamp
|
|
|
28
28
|
|
|
29
29
|
# List vaults (subfolders) in a vault
|
|
30
30
|
# @param vault_id [Integer] vault id ID
|
|
31
|
-
# @
|
|
32
|
-
|
|
31
|
+
# @param page [Integer, 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.
|
|
32
|
+
# @param max_items [Integer, nil] cap on items yielded across pages; nil or non-positive means no cap
|
|
33
|
+
# @return [ListEnumerator<Hash>] lazily paginated results (#meta carries pagination metadata)
|
|
34
|
+
def list(vault_id:, page: nil, max_items: nil)
|
|
33
35
|
wrap_paginated(service: "vaults", operation: "list", is_mutation: false, resource_id: vault_id) do
|
|
34
|
-
|
|
36
|
+
params = compact_query_params(page: page)
|
|
37
|
+
paginate("/vaults/#{vault_id}/vaults.json", params: params, operation: "ListVaults", max_items: max_items)
|
|
35
38
|
end
|
|
36
39
|
end
|
|
37
40
|
|
|
@@ -9,10 +9,11 @@ module Basecamp
|
|
|
9
9
|
|
|
10
10
|
# List all webhooks for a project
|
|
11
11
|
# @param bucket_id [Integer] bucket id ID
|
|
12
|
-
# @
|
|
13
|
-
|
|
12
|
+
# @param max_items [Integer, nil] cap on items yielded across pages; nil or non-positive means no cap
|
|
13
|
+
# @return [ListEnumerator<Hash>] lazily paginated results (#meta carries pagination metadata)
|
|
14
|
+
def list(bucket_id:, max_items: nil)
|
|
14
15
|
wrap_paginated(service: "webhooks", operation: "list", is_mutation: false, project_id: bucket_id) do
|
|
15
|
-
paginate("/buckets/#{bucket_id}/webhooks.json", operation: "ListWebhooks")
|
|
16
|
+
paginate("/buckets/#{bucket_id}/webhooks.json", operation: "ListWebhooks", max_items: max_items)
|
|
16
17
|
end
|
|
17
18
|
end
|
|
18
19
|
|