@37signals/basecamp 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.
- package/README.md +112 -16
- package/dist/.build-complete +0 -0
- package/dist/client.d.ts +65 -11
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +235 -215
- package/dist/client.js.map +1 -1
- package/dist/download.d.ts +7 -0
- package/dist/download.d.ts.map +1 -1
- package/dist/download.js +82 -22
- package/dist/download.js.map +1 -1
- package/dist/errors.d.ts +19 -1
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +128 -15
- package/dist/errors.js.map +1 -1
- package/dist/generated/metadata.d.ts.map +1 -1
- package/dist/generated/metadata.js +443 -133
- package/dist/generated/metadata.js.map +1 -1
- package/dist/generated/metadata.ts +443 -133
- package/dist/generated/openapi-stripped.json +8999 -4907
- package/dist/generated/path-mapping.d.ts.map +1 -1
- package/dist/generated/path-mapping.js +40 -16
- package/dist/generated/path-mapping.js.map +1 -1
- package/dist/generated/path-mapping.ts +40 -16
- package/dist/generated/schema.d.ts +5508 -2346
- package/dist/generated/services/bookmarks.d.ts +76 -0
- package/dist/generated/services/bookmarks.d.ts.map +1 -0
- package/dist/generated/services/bookmarks.js +114 -0
- package/dist/generated/services/bookmarks.js.map +1 -0
- package/dist/generated/services/bookmarks.ts +158 -0
- package/dist/generated/services/boosts.d.ts +10 -0
- package/dist/generated/services/boosts.d.ts.map +1 -1
- package/dist/generated/services/boosts.js +8 -0
- package/dist/generated/services/boosts.js.map +1 -1
- package/dist/generated/services/boosts.ts +12 -0
- package/dist/generated/services/calendars.d.ts +47 -0
- package/dist/generated/services/calendars.d.ts.map +1 -0
- package/dist/generated/services/calendars.js +73 -0
- package/dist/generated/services/calendars.js.map +1 -0
- package/dist/generated/services/calendars.ts +102 -0
- package/dist/generated/services/campfires.d.ts +54 -40
- package/dist/generated/services/campfires.d.ts.map +1 -1
- package/dist/generated/services/campfires.js +82 -65
- package/dist/generated/services/campfires.js.map +1 -1
- package/dist/generated/services/campfires.ts +107 -85
- package/dist/generated/services/cards.d.ts +5 -0
- package/dist/generated/services/cards.d.ts.map +1 -1
- package/dist/generated/services/cards.js +4 -0
- package/dist/generated/services/cards.js.map +1 -1
- package/dist/generated/services/cards.ts +6 -0
- package/dist/generated/services/checkins.d.ts +14 -0
- package/dist/generated/services/checkins.d.ts.map +1 -1
- package/dist/generated/services/checkins.js +14 -1
- package/dist/generated/services/checkins.js.map +1 -1
- package/dist/generated/services/checkins.ts +20 -0
- package/dist/generated/services/client-approvals.d.ts +6 -3
- package/dist/generated/services/client-approvals.d.ts.map +1 -1
- package/dist/generated/services/client-approvals.js +8 -5
- package/dist/generated/services/client-approvals.js.map +1 -1
- package/dist/generated/services/client-approvals.ts +10 -5
- package/dist/generated/services/client-correspondences.d.ts +6 -3
- package/dist/generated/services/client-correspondences.d.ts.map +1 -1
- package/dist/generated/services/client-correspondences.js +8 -5
- package/dist/generated/services/client-correspondences.js.map +1 -1
- package/dist/generated/services/client-correspondences.ts +10 -5
- package/dist/generated/services/client-replies.d.ts +11 -4
- package/dist/generated/services/client-replies.d.ts.map +1 -1
- package/dist/generated/services/client-replies.js +16 -8
- package/dist/generated/services/client-replies.js.map +1 -1
- package/dist/generated/services/client-replies.ts +18 -8
- package/dist/generated/services/cloud-files.d.ts +92 -0
- package/dist/generated/services/cloud-files.d.ts.map +1 -0
- package/dist/generated/services/cloud-files.js +121 -0
- package/dist/generated/services/cloud-files.js.map +1 -0
- package/dist/generated/services/cloud-files.ts +188 -0
- package/dist/generated/services/comments.d.ts +5 -0
- package/dist/generated/services/comments.d.ts.map +1 -1
- package/dist/generated/services/comments.js +4 -0
- package/dist/generated/services/comments.js.map +1 -1
- package/dist/generated/services/comments.ts +6 -0
- package/dist/generated/services/documents.d.ts +12 -7
- package/dist/generated/services/documents.d.ts.map +1 -1
- package/dist/generated/services/documents.js +10 -6
- package/dist/generated/services/documents.js.map +1 -1
- package/dist/generated/services/documents.ts +14 -8
- package/dist/generated/services/drafts.d.ts +38 -0
- package/dist/generated/services/drafts.d.ts.map +1 -0
- package/dist/generated/services/drafts.js +40 -0
- package/dist/generated/services/drafts.js.map +1 -0
- package/dist/generated/services/drafts.ts +67 -0
- package/dist/generated/services/events.d.ts +5 -0
- package/dist/generated/services/events.d.ts.map +1 -1
- package/dist/generated/services/events.js +4 -0
- package/dist/generated/services/events.js.map +1 -1
- package/dist/generated/services/events.ts +6 -0
- package/dist/generated/services/everything.d.ts +83 -16
- package/dist/generated/services/everything.d.ts.map +1 -1
- package/dist/generated/services/everything.js +23 -13
- package/dist/generated/services/everything.js.map +1 -1
- package/dist/generated/services/everything.ts +100 -25
- package/dist/generated/services/folders.d.ts +96 -0
- package/dist/generated/services/folders.d.ts.map +1 -0
- package/dist/generated/services/folders.js +140 -0
- package/dist/generated/services/folders.js.map +1 -0
- package/dist/generated/services/folders.ts +201 -0
- package/dist/generated/services/forwards.d.ts +7 -20
- package/dist/generated/services/forwards.d.ts.map +1 -1
- package/dist/generated/services/forwards.js +6 -35
- package/dist/generated/services/forwards.js.map +1 -1
- package/dist/generated/services/forwards.ts +10 -48
- package/dist/generated/services/gauges.d.ts +7 -0
- package/dist/generated/services/gauges.d.ts.map +1 -1
- package/dist/generated/services/gauges.js +5 -1
- package/dist/generated/services/gauges.js.map +1 -1
- package/dist/generated/services/gauges.ts +9 -1
- package/dist/generated/services/google-documents.d.ts +98 -0
- package/dist/generated/services/google-documents.d.ts.map +1 -0
- package/dist/generated/services/google-documents.js +123 -0
- package/dist/generated/services/google-documents.js.map +1 -0
- package/dist/generated/services/google-documents.ts +196 -0
- package/dist/generated/services/index.d.ts +12 -5
- package/dist/generated/services/index.d.ts.map +1 -1
- package/dist/generated/services/index.js +12 -5
- package/dist/generated/services/index.js.map +1 -1
- package/dist/generated/services/index.ts +12 -5
- package/dist/generated/services/messages.d.ts +2 -0
- package/dist/generated/services/messages.d.ts.map +1 -1
- package/dist/generated/services/messages.js +1 -1
- package/dist/generated/services/messages.js.map +1 -1
- package/dist/generated/services/messages.ts +3 -1
- package/dist/generated/services/my-assignments.d.ts +52 -0
- package/dist/generated/services/my-assignments.d.ts.map +1 -1
- package/dist/generated/services/my-assignments.js +71 -0
- package/dist/generated/services/my-assignments.js.map +1 -1
- package/dist/generated/services/my-assignments.ts +104 -0
- package/dist/generated/services/my-notes.d.ts +45 -0
- package/dist/generated/services/my-notes.d.ts.map +1 -0
- package/dist/generated/services/my-notes.js +62 -0
- package/dist/generated/services/my-notes.js.map +1 -0
- package/dist/generated/services/my-notes.ts +92 -0
- package/dist/generated/services/my-notifications.d.ts +4 -2
- package/dist/generated/services/my-notifications.d.ts.map +1 -1
- package/dist/generated/services/my-notifications.js.map +1 -1
- package/dist/generated/services/my-notifications.ts +4 -2
- package/dist/generated/services/people.d.ts +11 -1
- package/dist/generated/services/people.d.ts.map +1 -1
- package/dist/generated/services/people.js +13 -2
- package/dist/generated/services/people.js.map +1 -1
- package/dist/generated/services/people.ts +15 -1
- package/dist/generated/services/projects.d.ts +26 -0
- package/dist/generated/services/projects.d.ts.map +1 -1
- package/dist/generated/services/projects.js +49 -1
- package/dist/generated/services/projects.js.map +1 -1
- package/dist/generated/services/projects.ts +61 -1
- package/dist/generated/services/recordings.d.ts +2 -12
- package/dist/generated/services/recordings.d.ts.map +1 -1
- package/dist/generated/services/recordings.js +1 -26
- package/dist/generated/services/recordings.js.map +1 -1
- package/dist/generated/services/recordings.ts +3 -31
- package/dist/generated/services/reports.d.ts +8 -12
- package/dist/generated/services/reports.d.ts.map +1 -1
- package/dist/generated/services/reports.js +11 -5
- package/dist/generated/services/reports.js.map +1 -1
- package/dist/generated/services/reports.ts +13 -14
- package/dist/generated/services/schedules.d.ts +94 -15
- package/dist/generated/services/schedules.d.ts.map +1 -1
- package/dist/generated/services/schedules.js +19 -8
- package/dist/generated/services/schedules.js.map +1 -1
- package/dist/generated/services/schedules.ts +107 -17
- package/dist/generated/services/search.d.ts +2 -0
- package/dist/generated/services/search.d.ts.map +1 -1
- package/dist/generated/services/search.js +1 -1
- package/dist/generated/services/search.js.map +1 -1
- package/dist/generated/services/search.ts +3 -1
- package/dist/generated/services/templates.d.ts +2 -0
- package/dist/generated/services/templates.d.ts.map +1 -1
- package/dist/generated/services/templates.js +1 -1
- package/dist/generated/services/templates.js.map +1 -1
- package/dist/generated/services/templates.ts +3 -1
- package/dist/generated/services/timeline.d.ts +2 -0
- package/dist/generated/services/timeline.d.ts.map +1 -1
- package/dist/generated/services/timeline.js +1 -0
- package/dist/generated/services/timeline.js.map +1 -1
- package/dist/generated/services/timeline.ts +3 -0
- package/dist/generated/services/timesheets.d.ts +16 -0
- package/dist/generated/services/timesheets.d.ts.map +1 -1
- package/dist/generated/services/timesheets.js +26 -2
- package/dist/generated/services/timesheets.js.map +1 -1
- package/dist/generated/services/timesheets.ts +35 -2
- package/dist/generated/services/todolist-groups.d.ts +11 -6
- package/dist/generated/services/todolist-groups.d.ts.map +1 -1
- package/dist/generated/services/todolist-groups.js +7 -3
- package/dist/generated/services/todolist-groups.js.map +1 -1
- package/dist/generated/services/todolist-groups.ts +13 -7
- package/dist/generated/services/todolists.d.ts +15 -13
- package/dist/generated/services/todolists.d.ts.map +1 -1
- package/dist/generated/services/todolists.js +11 -8
- package/dist/generated/services/todolists.js.map +1 -1
- package/dist/generated/services/todolists.ts +19 -14
- package/dist/generated/services/todos.d.ts +35 -12
- package/dist/generated/services/todos.d.ts.map +1 -1
- package/dist/generated/services/todos.js +47 -25
- package/dist/generated/services/todos.js.map +1 -1
- package/dist/generated/services/todos.ts +74 -30
- package/dist/generated/services/uploads.d.ts +5 -0
- package/dist/generated/services/uploads.d.ts.map +1 -1
- package/dist/generated/services/uploads.js +4 -0
- package/dist/generated/services/uploads.js.map +1 -1
- package/dist/generated/services/uploads.ts +6 -0
- package/dist/generated/services/vaults.d.ts +5 -0
- package/dist/generated/services/vaults.d.ts.map +1 -1
- package/dist/generated/services/vaults.js +4 -0
- package/dist/generated/services/vaults.js.map +1 -1
- package/dist/generated/services/vaults.ts +6 -0
- package/dist/hooks/otel.d.ts +1 -1
- package/dist/hooks/otel.js +1 -1
- package/dist/index.d.ts +21 -11
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +24 -9
- package/dist/index.js.map +1 -1
- package/dist/oauth/discovery.d.ts.map +1 -1
- package/dist/oauth/discovery.js +1 -0
- package/dist/oauth/discovery.js.map +1 -1
- package/dist/pagination-utils.d.ts +46 -0
- package/dist/pagination-utils.d.ts.map +1 -1
- package/dist/pagination-utils.js +85 -2
- package/dist/pagination-utils.js.map +1 -1
- package/dist/pagination.d.ts +12 -1
- package/dist/pagination.d.ts.map +1 -1
- package/dist/pagination.js +1 -1
- package/dist/pagination.js.map +1 -1
- package/dist/retry.d.ts +110 -0
- package/dist/retry.d.ts.map +1 -0
- package/dist/retry.js +253 -0
- package/dist/retry.js.map +1 -0
- package/dist/services/base.d.ts.map +1 -1
- package/dist/services/base.js +59 -5
- package/dist/services/base.js.map +1 -1
- package/dist/services/cards-extensions.d.ts +26 -21
- package/dist/services/cards-extensions.d.ts.map +1 -1
- package/dist/services/cards-extensions.js +28 -31
- package/dist/services/cards-extensions.js.map +1 -1
- package/dist/services/documents-extensions.d.ts +122 -0
- package/dist/services/documents-extensions.d.ts.map +1 -0
- package/dist/services/documents-extensions.js +125 -0
- package/dist/services/documents-extensions.js.map +1 -0
- package/dist/services/merge-safe.d.ts +167 -0
- package/dist/services/merge-safe.d.ts.map +1 -0
- package/dist/services/merge-safe.js +217 -0
- package/dist/services/merge-safe.js.map +1 -0
- package/dist/services/schedules-extensions.d.ts +266 -0
- package/dist/services/schedules-extensions.d.ts.map +1 -0
- package/dist/services/schedules-extensions.js +268 -0
- package/dist/services/schedules-extensions.js.map +1 -0
- package/dist/services/todolists-extensions.d.ts +110 -0
- package/dist/services/todolists-extensions.d.ts.map +1 -0
- package/dist/services/todolists-extensions.js +262 -0
- package/dist/services/todolists-extensions.js.map +1 -0
- package/dist/services/todos-extensions.d.ts +12 -1
- package/dist/services/todos-extensions.d.ts.map +1 -1
- package/dist/services/todos-extensions.js +27 -8
- package/dist/services/todos-extensions.js.map +1 -1
- package/package.json +5 -4
- package/src/generated/metadata.ts +443 -133
- package/src/generated/openapi-stripped.json +8999 -4907
- package/src/generated/path-mapping.ts +40 -16
- package/src/generated/schema.d.ts +5508 -2346
- package/src/generated/services/bookmarks.ts +158 -0
- package/src/generated/services/boosts.ts +12 -0
- package/src/generated/services/calendars.ts +102 -0
- package/src/generated/services/campfires.ts +107 -85
- package/src/generated/services/cards.ts +6 -0
- package/src/generated/services/checkins.ts +20 -0
- package/src/generated/services/client-approvals.ts +10 -5
- package/src/generated/services/client-correspondences.ts +10 -5
- package/src/generated/services/client-replies.ts +18 -8
- package/src/generated/services/cloud-files.ts +188 -0
- package/src/generated/services/comments.ts +6 -0
- package/src/generated/services/documents.ts +14 -8
- package/src/generated/services/drafts.ts +67 -0
- package/src/generated/services/events.ts +6 -0
- package/src/generated/services/everything.ts +100 -25
- package/src/generated/services/folders.ts +201 -0
- package/src/generated/services/forwards.ts +10 -48
- package/src/generated/services/gauges.ts +9 -1
- package/src/generated/services/google-documents.ts +196 -0
- package/src/generated/services/index.ts +12 -5
- package/src/generated/services/messages.ts +3 -1
- package/src/generated/services/my-assignments.ts +104 -0
- package/src/generated/services/my-notes.ts +92 -0
- package/src/generated/services/my-notifications.ts +4 -2
- package/src/generated/services/people.ts +15 -1
- package/src/generated/services/projects.ts +61 -1
- package/src/generated/services/recordings.ts +3 -31
- package/src/generated/services/reports.ts +13 -14
- package/src/generated/services/schedules.ts +107 -17
- package/src/generated/services/search.ts +3 -1
- package/src/generated/services/templates.ts +3 -1
- package/src/generated/services/timeline.ts +3 -0
- package/src/generated/services/timesheets.ts +35 -2
- package/src/generated/services/todolist-groups.ts +13 -7
- package/src/generated/services/todolists.ts +19 -14
- package/src/generated/services/todos.ts +74 -30
- package/src/generated/services/uploads.ts +6 -0
- package/src/generated/services/vaults.ts +6 -0
|
@@ -0,0 +1,196 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* GoogleDocuments service for the Basecamp API.
|
|
3
|
+
*
|
|
4
|
+
* @generated from OpenAPI spec - do not edit directly
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
import { BaseService } from "../../services/base.js";
|
|
8
|
+
import type { components } from "../schema.js";
|
|
9
|
+
import { Errors } from "../../errors.js";
|
|
10
|
+
|
|
11
|
+
// =============================================================================
|
|
12
|
+
// Types
|
|
13
|
+
// =============================================================================
|
|
14
|
+
|
|
15
|
+
/** GoogleDocument entity from the Basecamp API. */
|
|
16
|
+
export type GoogleDocument = components["schemas"]["GoogleDocument"];
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* Request parameters for createGoogleDocument.
|
|
20
|
+
*/
|
|
21
|
+
export interface CreateGoogleDocumentGoogleDocumentRequest {
|
|
22
|
+
/** Url */
|
|
23
|
+
url: string;
|
|
24
|
+
/** One of "doc", "sheet", "slide", "other". Backed by a Rails enum, so an
|
|
25
|
+
unrecognized value is rejected up front with a field-keyed 422
|
|
26
|
+
({"errors": {"document_type": ["is not a valid document type"]}}) rather
|
|
27
|
+
than reaching validation. */
|
|
28
|
+
documentType: string;
|
|
29
|
+
/** Title */
|
|
30
|
+
title?: string;
|
|
31
|
+
/** Rich text description (HTML) */
|
|
32
|
+
description?: string;
|
|
33
|
+
/** active|drafted — defaults to drafted */
|
|
34
|
+
status?: string;
|
|
35
|
+
/** Subscriptions */
|
|
36
|
+
subscriptions?: number[];
|
|
37
|
+
/** Whether the document is visible to the project's clients. Applies only
|
|
38
|
+
when creating directly in the tool's vault — an item created inside a
|
|
39
|
+
folder inherits the folder's visibility and ignores this. A client caller
|
|
40
|
+
always creates client-visible records regardless of what is sent. */
|
|
41
|
+
visibleToClients?: boolean;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
/**
|
|
45
|
+
* Request parameters for updateGoogleDocument.
|
|
46
|
+
*/
|
|
47
|
+
export interface UpdateGoogleDocumentGoogleDocumentRequest {
|
|
48
|
+
/** Url */
|
|
49
|
+
url: string;
|
|
50
|
+
/** One of "doc", "sheet", "slide", "other". Backed by a Rails enum, so an
|
|
51
|
+
unrecognized value is rejected up front with a field-keyed 422
|
|
52
|
+
({"errors": {"document_type": ["is not a valid document type"]}}) rather
|
|
53
|
+
than reaching validation. */
|
|
54
|
+
documentType: string;
|
|
55
|
+
/** Title */
|
|
56
|
+
title?: string;
|
|
57
|
+
/** Rich text description (HTML) */
|
|
58
|
+
description?: string;
|
|
59
|
+
/** Status */
|
|
60
|
+
status?: "active" | "drafted";
|
|
61
|
+
/** Subscriptions */
|
|
62
|
+
subscriptions?: number[];
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
|
|
66
|
+
// =============================================================================
|
|
67
|
+
// Service
|
|
68
|
+
// =============================================================================
|
|
69
|
+
|
|
70
|
+
/**
|
|
71
|
+
* Service for GoogleDocuments operations.
|
|
72
|
+
*/
|
|
73
|
+
export class GoogleDocumentsService extends BaseService {
|
|
74
|
+
|
|
75
|
+
/**
|
|
76
|
+
* Create a new Google document in a vault.
|
|
77
|
+
* @param bucketId - The bucket ID
|
|
78
|
+
* @param vaultId - The vault ID
|
|
79
|
+
* @param req - Google_document creation parameters
|
|
80
|
+
* @returns The GoogleDocument
|
|
81
|
+
* @throws {BasecampError} If required fields are missing or invalid
|
|
82
|
+
*
|
|
83
|
+
* @example
|
|
84
|
+
* ```ts
|
|
85
|
+
* const result = await client.googleDocuments.createGoogleDocument(123, 123, { url: "example", documentType: "example" });
|
|
86
|
+
* ```
|
|
87
|
+
*/
|
|
88
|
+
async createGoogleDocument(bucketId: number, vaultId: number, req: CreateGoogleDocumentGoogleDocumentRequest): Promise<GoogleDocument> {
|
|
89
|
+
if (!req.url) {
|
|
90
|
+
throw Errors.validation("Url is required");
|
|
91
|
+
}
|
|
92
|
+
if (!req.documentType) {
|
|
93
|
+
throw Errors.validation("Document type is required");
|
|
94
|
+
}
|
|
95
|
+
const response = await this.request(
|
|
96
|
+
{
|
|
97
|
+
service: "GoogleDocuments",
|
|
98
|
+
operation: "CreateGoogleDocument",
|
|
99
|
+
resourceType: "google_document",
|
|
100
|
+
isMutation: true,
|
|
101
|
+
projectId: bucketId,
|
|
102
|
+
resourceId: vaultId,
|
|
103
|
+
},
|
|
104
|
+
() =>
|
|
105
|
+
this.client.POST("/buckets/{bucketId}/vaults/{vaultId}/google_documents.json", {
|
|
106
|
+
params: {
|
|
107
|
+
path: { bucketId, vaultId },
|
|
108
|
+
},
|
|
109
|
+
body: {
|
|
110
|
+
url: req.url,
|
|
111
|
+
document_type: req.documentType,
|
|
112
|
+
title: req.title,
|
|
113
|
+
description: req.description,
|
|
114
|
+
status: req.status,
|
|
115
|
+
subscriptions: req.subscriptions,
|
|
116
|
+
visible_to_clients: req.visibleToClients,
|
|
117
|
+
},
|
|
118
|
+
})
|
|
119
|
+
);
|
|
120
|
+
return response;
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
/**
|
|
124
|
+
* Get a single Google document by id
|
|
125
|
+
* @param googleDocumentId - The google document ID
|
|
126
|
+
* @returns The GoogleDocument
|
|
127
|
+
*
|
|
128
|
+
* @example
|
|
129
|
+
* ```ts
|
|
130
|
+
* const result = await client.googleDocuments.googleDocument(123);
|
|
131
|
+
* ```
|
|
132
|
+
*/
|
|
133
|
+
async googleDocument(googleDocumentId: number): Promise<GoogleDocument> {
|
|
134
|
+
const response = await this.request(
|
|
135
|
+
{
|
|
136
|
+
service: "GoogleDocuments",
|
|
137
|
+
operation: "GetGoogleDocument",
|
|
138
|
+
resourceType: "google_document",
|
|
139
|
+
isMutation: false,
|
|
140
|
+
resourceId: googleDocumentId,
|
|
141
|
+
},
|
|
142
|
+
() =>
|
|
143
|
+
this.client.GET("/google_documents/{googleDocumentId}", {
|
|
144
|
+
params: {
|
|
145
|
+
path: { googleDocumentId },
|
|
146
|
+
},
|
|
147
|
+
})
|
|
148
|
+
);
|
|
149
|
+
return response;
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
/**
|
|
153
|
+
* Replace a Google document with a new complete representation.
|
|
154
|
+
* @param googleDocumentId - The google document ID
|
|
155
|
+
* @param req - Google_document update parameters
|
|
156
|
+
* @returns The GoogleDocument
|
|
157
|
+
* @throws {BasecampError} If the resource is not found or fields are invalid
|
|
158
|
+
*
|
|
159
|
+
* @example
|
|
160
|
+
* ```ts
|
|
161
|
+
* const result = await client.googleDocuments.updateGoogleDocument(123, { url: "example", documentType: "example" });
|
|
162
|
+
* ```
|
|
163
|
+
*/
|
|
164
|
+
async updateGoogleDocument(googleDocumentId: number, req: UpdateGoogleDocumentGoogleDocumentRequest): Promise<GoogleDocument> {
|
|
165
|
+
if (!req.url) {
|
|
166
|
+
throw Errors.validation("Url is required");
|
|
167
|
+
}
|
|
168
|
+
if (!req.documentType) {
|
|
169
|
+
throw Errors.validation("Document type is required");
|
|
170
|
+
}
|
|
171
|
+
const response = await this.request(
|
|
172
|
+
{
|
|
173
|
+
service: "GoogleDocuments",
|
|
174
|
+
operation: "UpdateGoogleDocument",
|
|
175
|
+
resourceType: "google_document",
|
|
176
|
+
isMutation: true,
|
|
177
|
+
resourceId: googleDocumentId,
|
|
178
|
+
},
|
|
179
|
+
() =>
|
|
180
|
+
this.client.PUT("/google_documents/{googleDocumentId}", {
|
|
181
|
+
params: {
|
|
182
|
+
path: { googleDocumentId },
|
|
183
|
+
},
|
|
184
|
+
body: {
|
|
185
|
+
url: req.url,
|
|
186
|
+
document_type: req.documentType,
|
|
187
|
+
title: req.title,
|
|
188
|
+
description: req.description,
|
|
189
|
+
status: req.status,
|
|
190
|
+
subscriptions: req.subscriptions,
|
|
191
|
+
},
|
|
192
|
+
})
|
|
193
|
+
);
|
|
194
|
+
return response;
|
|
195
|
+
}
|
|
196
|
+
}
|
|
@@ -4,17 +4,21 @@ export { BoostsService } from "./boosts.js";
|
|
|
4
4
|
export { CardColumnsService } from "./card-columns.js";
|
|
5
5
|
export { WormholesService } from "./wormholes.js";
|
|
6
6
|
export { MessageTypesService } from "./message-types.js";
|
|
7
|
+
export { CampfiresService } from "./campfires.js";
|
|
8
|
+
export { ClientApprovalsService } from "./client-approvals.js";
|
|
9
|
+
export { ClientCorrespondencesService } from "./client-correspondences.js";
|
|
10
|
+
export { ClientRepliesService } from "./client-replies.js";
|
|
7
11
|
export { ToolsService } from "./tools.js";
|
|
12
|
+
export { TodosService } from "./todos.js";
|
|
13
|
+
export { CloudFilesService } from "./cloud-files.js";
|
|
14
|
+
export { GoogleDocumentsService } from "./google-documents.js";
|
|
8
15
|
export { WebhooksService } from "./webhooks.js";
|
|
16
|
+
export { CalendarsService } from "./calendars.js";
|
|
9
17
|
export { CardsService } from "./cards.js";
|
|
10
18
|
export { CardStepsService } from "./card-steps.js";
|
|
11
19
|
export { CardTablesService } from "./card-tables.js";
|
|
12
20
|
export { EverythingService } from "./everything.js";
|
|
13
|
-
export { CampfiresService } from "./campfires.js";
|
|
14
21
|
export { PeopleService } from "./people.js";
|
|
15
|
-
export { ClientApprovalsService } from "./client-approvals.js";
|
|
16
|
-
export { ClientCorrespondencesService } from "./client-correspondences.js";
|
|
17
|
-
export { ClientRepliesService } from "./client-replies.js";
|
|
18
22
|
export { CommentsService } from "./comments.js";
|
|
19
23
|
export { DocumentsService } from "./documents.js";
|
|
20
24
|
export { GaugesService } from "./gauges.js";
|
|
@@ -24,6 +28,9 @@ export { LineupService } from "./lineup.js";
|
|
|
24
28
|
export { MessageBoardsService } from "./message-boards.js";
|
|
25
29
|
export { MessagesService } from "./messages.js";
|
|
26
30
|
export { MyAssignmentsService } from "./my-assignments.js";
|
|
31
|
+
export { BookmarksService } from "./bookmarks.js";
|
|
32
|
+
export { DraftsService } from "./drafts.js";
|
|
33
|
+
export { MyNotesService } from "./my-notes.js";
|
|
27
34
|
export { CheckinsService } from "./checkins.js";
|
|
28
35
|
export { MyNotificationsService } from "./my-notifications.js";
|
|
29
36
|
export { ProjectsService } from "./projects.js";
|
|
@@ -36,10 +43,10 @@ export { SubscriptionsService } from "./subscriptions.js";
|
|
|
36
43
|
export { ReportsService } from "./reports.js";
|
|
37
44
|
export { SchedulesService } from "./schedules.js";
|
|
38
45
|
export { SearchService } from "./search.js";
|
|
46
|
+
export { FoldersService } from "./folders.js";
|
|
39
47
|
export { TemplatesService } from "./templates.js";
|
|
40
48
|
export { TodolistGroupsService } from "./todolist-groups.js";
|
|
41
49
|
export { TodolistsService } from "./todolists.js";
|
|
42
|
-
export { TodosService } from "./todos.js";
|
|
43
50
|
export { TodosetsService } from "./todosets.js";
|
|
44
51
|
export { HillChartsService } from "./hill-charts.js";
|
|
45
52
|
export { UploadsService } from "./uploads.js";
|
|
@@ -25,6 +25,8 @@ export interface ListMessageOptions extends PaginationOptions {
|
|
|
25
25
|
sort?: "created_at" | "updated_at";
|
|
26
26
|
/** Filter by direction */
|
|
27
27
|
direction?: "asc" | "desc";
|
|
28
|
+
/** Page number for paginating through results. Defaults to 1. A positive value selects exactly that page, not a starting offset; see SPEC section 8. */
|
|
29
|
+
page?: number;
|
|
28
30
|
}
|
|
29
31
|
|
|
30
32
|
/**
|
|
@@ -96,7 +98,7 @@ export class MessagesService extends BaseService {
|
|
|
96
98
|
this.client.GET("/message_boards/{boardId}/messages.json", {
|
|
97
99
|
params: {
|
|
98
100
|
path: { boardId },
|
|
99
|
-
query: { sort: options?.sort, direction: options?.direction },
|
|
101
|
+
query: { sort: options?.sort, direction: options?.direction, page: options?.page },
|
|
100
102
|
},
|
|
101
103
|
})
|
|
102
104
|
, options
|
|
@@ -21,6 +21,24 @@ due_later_this_week, due_next_week, due_later */
|
|
|
21
21
|
scope?: string;
|
|
22
22
|
}
|
|
23
23
|
|
|
24
|
+
/**
|
|
25
|
+
* Request parameters for prioritizeAssignment.
|
|
26
|
+
*/
|
|
27
|
+
export interface PrioritizeAssignmentMyAssignmentRequest {
|
|
28
|
+
/** The recording id to prioritize. */
|
|
29
|
+
id: number;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* Request parameters for reorderUpNext.
|
|
34
|
+
*/
|
|
35
|
+
export interface ReorderUpNextMyAssignmentRequest {
|
|
36
|
+
/** The recording id to move, chosen the same way as when prioritizing. */
|
|
37
|
+
sourceId: number;
|
|
38
|
+
/** The 1-based position to move it to. */
|
|
39
|
+
position: number;
|
|
40
|
+
}
|
|
41
|
+
|
|
24
42
|
|
|
25
43
|
// =============================================================================
|
|
26
44
|
// Service
|
|
@@ -106,4 +124,90 @@ export class MyAssignmentsService extends BaseService {
|
|
|
106
124
|
);
|
|
107
125
|
return response ?? [];
|
|
108
126
|
}
|
|
127
|
+
|
|
128
|
+
/**
|
|
129
|
+
* Add a recording to Up Next — the current user's ordered list of prioritized
|
|
130
|
+
* @param req - Resource request parameters
|
|
131
|
+
* @returns void
|
|
132
|
+
* @throws {BasecampError} If the request fails
|
|
133
|
+
*
|
|
134
|
+
* @example
|
|
135
|
+
* ```ts
|
|
136
|
+
* await client.myAssignments.prioritizeAssignment({ id: 1 });
|
|
137
|
+
* ```
|
|
138
|
+
*/
|
|
139
|
+
async prioritizeAssignment(req: PrioritizeAssignmentMyAssignmentRequest): Promise<void> {
|
|
140
|
+
await this.request(
|
|
141
|
+
{
|
|
142
|
+
service: "MyAssignments",
|
|
143
|
+
operation: "PrioritizeAssignment",
|
|
144
|
+
resourceType: "resource",
|
|
145
|
+
isMutation: true,
|
|
146
|
+
},
|
|
147
|
+
() =>
|
|
148
|
+
this.client.POST("/my/priorities.json", {
|
|
149
|
+
body: {
|
|
150
|
+
id: req.id,
|
|
151
|
+
},
|
|
152
|
+
})
|
|
153
|
+
);
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
/**
|
|
157
|
+
* Remove a recording from Up Next. Exact-target:
|
|
158
|
+
* @param recordingId - The recording ID
|
|
159
|
+
* @returns void
|
|
160
|
+
* @throws {BasecampError} If the request fails
|
|
161
|
+
*
|
|
162
|
+
* @example
|
|
163
|
+
* ```ts
|
|
164
|
+
* await client.myAssignments.deprioritizeAssignment(123);
|
|
165
|
+
* ```
|
|
166
|
+
*/
|
|
167
|
+
async deprioritizeAssignment(recordingId: number): Promise<void> {
|
|
168
|
+
await this.request(
|
|
169
|
+
{
|
|
170
|
+
service: "MyAssignments",
|
|
171
|
+
operation: "DeprioritizeAssignment",
|
|
172
|
+
resourceType: "resource",
|
|
173
|
+
isMutation: true,
|
|
174
|
+
resourceId: recordingId,
|
|
175
|
+
},
|
|
176
|
+
() =>
|
|
177
|
+
this.client.DELETE("/my/priorities/{recordingId}", {
|
|
178
|
+
params: {
|
|
179
|
+
path: { recordingId },
|
|
180
|
+
},
|
|
181
|
+
})
|
|
182
|
+
);
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
/**
|
|
186
|
+
* Move an already-prioritized recording to a new 1-based position in Up Next
|
|
187
|
+
* @param req - Resource request parameters
|
|
188
|
+
* @returns void
|
|
189
|
+
* @throws {BasecampError} If the request fails
|
|
190
|
+
*
|
|
191
|
+
* @example
|
|
192
|
+
* ```ts
|
|
193
|
+
* await client.myAssignments.reorderUpNext({ sourceId: 1, position: 1 });
|
|
194
|
+
* ```
|
|
195
|
+
*/
|
|
196
|
+
async reorderUpNext(req: ReorderUpNextMyAssignmentRequest): Promise<void> {
|
|
197
|
+
await this.request(
|
|
198
|
+
{
|
|
199
|
+
service: "MyAssignments",
|
|
200
|
+
operation: "ReorderUpNext",
|
|
201
|
+
resourceType: "resource",
|
|
202
|
+
isMutation: true,
|
|
203
|
+
},
|
|
204
|
+
() =>
|
|
205
|
+
this.client.POST("/my/priority_moves.json", {
|
|
206
|
+
body: {
|
|
207
|
+
source_id: req.sourceId,
|
|
208
|
+
position: req.position,
|
|
209
|
+
},
|
|
210
|
+
})
|
|
211
|
+
);
|
|
212
|
+
}
|
|
109
213
|
}
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MyNotes service for the Basecamp API.
|
|
3
|
+
*
|
|
4
|
+
* @generated from OpenAPI spec - do not edit directly
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
import { BaseService } from "../../services/base.js";
|
|
8
|
+
import type { components } from "../schema.js";
|
|
9
|
+
import { Errors } from "../../errors.js";
|
|
10
|
+
|
|
11
|
+
// =============================================================================
|
|
12
|
+
// Types
|
|
13
|
+
// =============================================================================
|
|
14
|
+
|
|
15
|
+
/** MyNote entity from the Basecamp API. */
|
|
16
|
+
export type MyNote = components["schemas"]["MyNote"];
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* Request parameters for updateMyNote.
|
|
20
|
+
*/
|
|
21
|
+
export interface UpdateMyNoteMyNoteRequest {
|
|
22
|
+
/** Note */
|
|
23
|
+
note: components["schemas"]["MyNoteAttributes"];
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
// =============================================================================
|
|
28
|
+
// Service
|
|
29
|
+
// =============================================================================
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* Service for MyNotes operations.
|
|
33
|
+
*/
|
|
34
|
+
export class MyNotesService extends BaseService {
|
|
35
|
+
|
|
36
|
+
/**
|
|
37
|
+
* Get the authenticated user's note — a per-person notebook singleton at
|
|
38
|
+
* @returns The MyNote
|
|
39
|
+
* @throws {BasecampError} If the resource is not found
|
|
40
|
+
*
|
|
41
|
+
* @example
|
|
42
|
+
* ```ts
|
|
43
|
+
* const result = await client.myNotes.getMyNote();
|
|
44
|
+
* ```
|
|
45
|
+
*/
|
|
46
|
+
async getMyNote(): Promise<MyNote> {
|
|
47
|
+
const response = await this.request(
|
|
48
|
+
{
|
|
49
|
+
service: "MyNotes",
|
|
50
|
+
operation: "GetMyNote",
|
|
51
|
+
resourceType: "my_note",
|
|
52
|
+
isMutation: false,
|
|
53
|
+
},
|
|
54
|
+
() =>
|
|
55
|
+
this.client.GET("/my/notes.json", {
|
|
56
|
+
})
|
|
57
|
+
);
|
|
58
|
+
return response;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
/**
|
|
62
|
+
* Replace the note's content, recording a new revision server-side.
|
|
63
|
+
* @param req - My_note update parameters
|
|
64
|
+
* @returns The MyNote
|
|
65
|
+
* @throws {BasecampError} If the resource is not found or fields are invalid
|
|
66
|
+
*
|
|
67
|
+
* @example
|
|
68
|
+
* ```ts
|
|
69
|
+
* const result = await client.myNotes.updateMyNote({ note: { content: "Hello world" } });
|
|
70
|
+
* ```
|
|
71
|
+
*/
|
|
72
|
+
async updateMyNote(req: UpdateMyNoteMyNoteRequest): Promise<MyNote> {
|
|
73
|
+
if (!req.note) {
|
|
74
|
+
throw Errors.validation("Note is required");
|
|
75
|
+
}
|
|
76
|
+
const response = await this.request(
|
|
77
|
+
{
|
|
78
|
+
service: "MyNotes",
|
|
79
|
+
operation: "UpdateMyNote",
|
|
80
|
+
resourceType: "my_note",
|
|
81
|
+
isMutation: true,
|
|
82
|
+
},
|
|
83
|
+
() =>
|
|
84
|
+
this.client.PUT("/my/notes.json", {
|
|
85
|
+
body: {
|
|
86
|
+
note: req.note,
|
|
87
|
+
},
|
|
88
|
+
})
|
|
89
|
+
);
|
|
90
|
+
return response;
|
|
91
|
+
}
|
|
92
|
+
}
|
|
@@ -21,7 +21,9 @@ export type Notification = components["schemas"]["Notification"];
|
|
|
21
21
|
* Options for myNotifications.
|
|
22
22
|
*/
|
|
23
23
|
export interface MyNotificationsMyNotificationOptions {
|
|
24
|
-
/** Page number for paginating through read items. Defaults to 1.
|
|
24
|
+
/** Page number for paginating through read items. Defaults to 1. This
|
|
25
|
+
operation is not auto-paginated in any SDK, so a page is returned as
|
|
26
|
+
asked for and later pages are not followed. */
|
|
25
27
|
page?: number;
|
|
26
28
|
/** Set to true to cap `bubble_ups` at 2 current bubble-ups and omit the
|
|
27
29
|
`scheduled_bubble_ups` key entirely. Defaults to false. Use the dedicated
|
|
@@ -34,7 +36,7 @@ scheduled bubble-ups. */
|
|
|
34
36
|
* Options for bubbleUps.
|
|
35
37
|
*/
|
|
36
38
|
export interface BubbleUpsMyNotificationOptions extends PaginationOptions {
|
|
37
|
-
/** Page number. Defaults to 1. */
|
|
39
|
+
/** Page number. Defaults to 1. A positive value selects exactly that page, not a starting offset; see SPEC section 8. */
|
|
38
40
|
page?: number;
|
|
39
41
|
}
|
|
40
42
|
|
|
@@ -57,6 +57,8 @@ export interface UpdateMyProfilePeopleRequest {
|
|
|
57
57
|
* Options for list.
|
|
58
58
|
*/
|
|
59
59
|
export interface ListPeopleOptions extends PaginationOptions {
|
|
60
|
+
/** Page number for paginating through results. Defaults to 1. A positive value selects exactly that page, not a starting offset; see SPEC section 8. */
|
|
61
|
+
page?: number;
|
|
60
62
|
}
|
|
61
63
|
|
|
62
64
|
/**
|
|
@@ -71,6 +73,8 @@ export interface EnableOutOfOfficePeopleRequest {
|
|
|
71
73
|
* Options for listForProject.
|
|
72
74
|
*/
|
|
73
75
|
export interface ListForProjectPeopleOptions extends PaginationOptions {
|
|
76
|
+
/** Page number for paginating through results. Defaults to 1. A positive value selects exactly that page, not a starting offset; see SPEC section 8. */
|
|
77
|
+
page?: number;
|
|
74
78
|
}
|
|
75
79
|
|
|
76
80
|
/**
|
|
@@ -145,7 +149,7 @@ export class PeopleService extends BaseService {
|
|
|
145
149
|
}
|
|
146
150
|
|
|
147
151
|
/**
|
|
148
|
-
* Update the current user's preferences
|
|
152
|
+
* Update the current user's preferences.
|
|
149
153
|
* @param req - My_preference update parameters
|
|
150
154
|
* @returns The my_preference
|
|
151
155
|
* @throws {BasecampError} If the resource is not found or fields are invalid
|
|
@@ -243,6 +247,9 @@ export class PeopleService extends BaseService {
|
|
|
243
247
|
* @example
|
|
244
248
|
* ```ts
|
|
245
249
|
* const result = await client.people.list();
|
|
250
|
+
*
|
|
251
|
+
* // With options
|
|
252
|
+
* const filtered = await client.people.list({ page: 1 });
|
|
246
253
|
* ```
|
|
247
254
|
*/
|
|
248
255
|
async list(options?: ListPeopleOptions): Promise<ListResult<Person>> {
|
|
@@ -255,6 +262,9 @@ export class PeopleService extends BaseService {
|
|
|
255
262
|
},
|
|
256
263
|
() =>
|
|
257
264
|
this.client.GET("/people.json", {
|
|
265
|
+
params: {
|
|
266
|
+
query: { page: options?.page },
|
|
267
|
+
},
|
|
258
268
|
})
|
|
259
269
|
, options
|
|
260
270
|
);
|
|
@@ -394,6 +404,9 @@ export class PeopleService extends BaseService {
|
|
|
394
404
|
* @example
|
|
395
405
|
* ```ts
|
|
396
406
|
* const result = await client.people.listForProject(123);
|
|
407
|
+
*
|
|
408
|
+
* // With options
|
|
409
|
+
* const filtered = await client.people.listForProject(123, { page: 1 });
|
|
397
410
|
* ```
|
|
398
411
|
*/
|
|
399
412
|
async listForProject(projectId: number, options?: ListForProjectPeopleOptions): Promise<ListResult<Person>> {
|
|
@@ -409,6 +422,7 @@ export class PeopleService extends BaseService {
|
|
|
409
422
|
this.client.GET("/projects/{projectId}/people.json", {
|
|
410
423
|
params: {
|
|
411
424
|
path: { projectId },
|
|
425
|
+
query: { page: options?.page },
|
|
412
426
|
},
|
|
413
427
|
})
|
|
414
428
|
, options
|
|
@@ -23,6 +23,8 @@ export type Project = components["schemas"]["Project"];
|
|
|
23
23
|
export interface ListProjectOptions extends PaginationOptions {
|
|
24
24
|
/** Filter by status */
|
|
25
25
|
status?: "active" | "archived" | "trashed";
|
|
26
|
+
/** Page number for paginating through results. Defaults to 1. A positive value selects exactly that page, not a starting offset; see SPEC section 8. */
|
|
27
|
+
page?: number;
|
|
26
28
|
}
|
|
27
29
|
|
|
28
30
|
/**
|
|
@@ -83,7 +85,7 @@ export class ProjectsService extends BaseService {
|
|
|
83
85
|
() =>
|
|
84
86
|
this.client.GET("/projects.json", {
|
|
85
87
|
params: {
|
|
86
|
-
query: { status: options?.status },
|
|
88
|
+
query: { status: options?.status, page: options?.page },
|
|
87
89
|
},
|
|
88
90
|
})
|
|
89
91
|
, options
|
|
@@ -221,4 +223,62 @@ export class ProjectsService extends BaseService {
|
|
|
221
223
|
})
|
|
222
224
|
);
|
|
223
225
|
}
|
|
226
|
+
|
|
227
|
+
/**
|
|
228
|
+
* Restore a project to active status from trash as well as from the archive.
|
|
229
|
+
* @param projectId - The project ID
|
|
230
|
+
* @returns void
|
|
231
|
+
* @throws {BasecampError} If the request fails
|
|
232
|
+
*
|
|
233
|
+
* @example
|
|
234
|
+
* ```ts
|
|
235
|
+
* await client.projects.unarchive(123);
|
|
236
|
+
* ```
|
|
237
|
+
*/
|
|
238
|
+
async unarchive(projectId: number): Promise<void> {
|
|
239
|
+
await this.request(
|
|
240
|
+
{
|
|
241
|
+
service: "Projects",
|
|
242
|
+
operation: "UnarchiveProject",
|
|
243
|
+
resourceType: "project",
|
|
244
|
+
isMutation: true,
|
|
245
|
+
projectId,
|
|
246
|
+
},
|
|
247
|
+
() =>
|
|
248
|
+
this.client.PUT("/projects/{projectId}/status/active.json", {
|
|
249
|
+
params: {
|
|
250
|
+
path: { projectId },
|
|
251
|
+
},
|
|
252
|
+
})
|
|
253
|
+
);
|
|
254
|
+
}
|
|
255
|
+
|
|
256
|
+
/**
|
|
257
|
+
* Archive a project, removing it from the active project list.
|
|
258
|
+
* @param projectId - The project ID
|
|
259
|
+
* @returns void
|
|
260
|
+
* @throws {BasecampError} If the request fails
|
|
261
|
+
*
|
|
262
|
+
* @example
|
|
263
|
+
* ```ts
|
|
264
|
+
* await client.projects.archive(123);
|
|
265
|
+
* ```
|
|
266
|
+
*/
|
|
267
|
+
async archive(projectId: number): Promise<void> {
|
|
268
|
+
await this.request(
|
|
269
|
+
{
|
|
270
|
+
service: "Projects",
|
|
271
|
+
operation: "ArchiveProject",
|
|
272
|
+
resourceType: "project",
|
|
273
|
+
isMutation: true,
|
|
274
|
+
projectId,
|
|
275
|
+
},
|
|
276
|
+
() =>
|
|
277
|
+
this.client.PUT("/projects/{projectId}/status/archived.json", {
|
|
278
|
+
params: {
|
|
279
|
+
path: { projectId },
|
|
280
|
+
},
|
|
281
|
+
})
|
|
282
|
+
);
|
|
283
|
+
}
|
|
224
284
|
}
|
|
@@ -28,6 +28,8 @@ export interface ListRecordingOptions extends PaginationOptions {
|
|
|
28
28
|
sort?: "created_at" | "updated_at";
|
|
29
29
|
/** Filter by direction */
|
|
30
30
|
direction?: "asc" | "desc";
|
|
31
|
+
/** 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
|
+
page?: number;
|
|
31
33
|
}
|
|
32
34
|
|
|
33
35
|
|
|
@@ -65,43 +67,13 @@ export class RecordingsService extends BaseService {
|
|
|
65
67
|
() =>
|
|
66
68
|
this.client.GET("/projects/recordings.json", {
|
|
67
69
|
params: {
|
|
68
|
-
query: { type: type, bucket: options?.bucket?.join(","), status: options?.status, sort: options?.sort, direction: options?.direction },
|
|
70
|
+
query: { type: type, bucket: options?.bucket?.join(","), status: options?.status, sort: options?.sort, direction: options?.direction, page: options?.page },
|
|
69
71
|
},
|
|
70
72
|
})
|
|
71
73
|
, options
|
|
72
74
|
);
|
|
73
75
|
}
|
|
74
76
|
|
|
75
|
-
/**
|
|
76
|
-
* Get a single recording by id
|
|
77
|
-
* @param recordingId - The recording ID
|
|
78
|
-
* @returns The Recording
|
|
79
|
-
* @throws {BasecampError} If the resource is not found
|
|
80
|
-
*
|
|
81
|
-
* @example
|
|
82
|
-
* ```ts
|
|
83
|
-
* const result = await client.recordings.get(123);
|
|
84
|
-
* ```
|
|
85
|
-
*/
|
|
86
|
-
async get(recordingId: number): Promise<Recording> {
|
|
87
|
-
const response = await this.request(
|
|
88
|
-
{
|
|
89
|
-
service: "Recordings",
|
|
90
|
-
operation: "GetRecording",
|
|
91
|
-
resourceType: "recording",
|
|
92
|
-
isMutation: false,
|
|
93
|
-
resourceId: recordingId,
|
|
94
|
-
},
|
|
95
|
-
() =>
|
|
96
|
-
this.client.GET("/recordings/{recordingId}", {
|
|
97
|
-
params: {
|
|
98
|
-
path: { recordingId },
|
|
99
|
-
},
|
|
100
|
-
})
|
|
101
|
-
);
|
|
102
|
-
return response;
|
|
103
|
-
}
|
|
104
|
-
|
|
105
77
|
/**
|
|
106
78
|
* Unarchive a recording (restore to active status)
|
|
107
79
|
* @param recordingId - The recording ID
|