@37signals/basecamp 0.12.0 → 0.14.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 +114 -17
- package/dist/.build-complete +0 -0
- package/dist/client.d.ts +53 -11
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +132 -150
- 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 +138 -14
- package/dist/errors.js.map +1 -1
- package/dist/generated/metadata.d.ts.map +1 -1
- package/dist/generated/metadata.js +291 -141
- package/dist/generated/metadata.js.map +1 -1
- package/dist/generated/metadata.ts +291 -141
- package/dist/generated/openapi-stripped.json +5954 -3523
- package/dist/generated/path-mapping.d.ts.map +1 -1
- package/dist/generated/path-mapping.js +28 -16
- package/dist/generated/path-mapping.js.map +1 -1
- package/dist/generated/path-mapping.ts +28 -16
- package/dist/generated/schema.d.ts +4390 -2357
- package/dist/generated/services/bookmarks.d.ts +1 -1
- package/dist/generated/services/bookmarks.d.ts.map +1 -1
- package/dist/generated/services/bookmarks.ts +1 -1
- 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/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 +1 -1
- package/dist/generated/services/drafts.d.ts.map +1 -1
- package/dist/generated/services/drafts.ts +1 -1
- 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 +14 -14
- package/dist/generated/services/everything.d.ts.map +1 -1
- package/dist/generated/services/everything.ts +14 -14
- 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 +7 -4
- package/dist/generated/services/index.d.ts.map +1 -1
- package/dist/generated/services/index.js +7 -4
- package/dist/generated/services/index.js.map +1 -1
- package/dist/generated/services/index.ts +7 -4
- 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-notes.d.ts +1 -1
- package/dist/generated/services/my-notes.js +1 -1
- package/dist/generated/services/my-notes.ts +1 -1
- 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 +2 -12
- package/dist/generated/services/todos.d.ts.map +1 -1
- package/dist/generated/services/todos.js +1 -25
- package/dist/generated/services/todos.js.map +1 -1
- package/dist/generated/services/todos.ts +3 -30
- package/dist/generated/services/uploads.d.ts +41 -2
- package/dist/generated/services/uploads.d.ts.map +1 -1
- package/dist/generated/services/uploads.js +41 -1
- package/dist/generated/services/uploads.js.map +1 -1
- package/dist/generated/services/uploads.ts +71 -2
- 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/index.d.ts +16 -10
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +19 -8
- package/dist/index.js.map +1 -1
- package/dist/oauth/authorization-document.d.ts +201 -0
- package/dist/oauth/authorization-document.d.ts.map +1 -0
- package/dist/oauth/authorization-document.js +130 -0
- package/dist/oauth/authorization-document.js.map +1 -0
- package/dist/oauth/identity.d.ts +7 -1
- package/dist/oauth/identity.d.ts.map +1 -1
- package/dist/oauth/identity.js +8 -19
- package/dist/oauth/identity.js.map +1 -1
- package/dist/oauth/index.d.ts +1 -0
- package/dist/oauth/index.d.ts.map +1 -1
- package/dist/oauth/index.js +2 -0
- package/dist/oauth/index.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 +11 -0
- package/dist/pagination.d.ts.map +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/authorization.d.ts +22 -52
- package/dist/services/authorization.d.ts.map +1 -1
- package/dist/services/authorization.js +14 -32
- package/dist/services/authorization.js.map +1 -1
- 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 +6 -5
- package/src/generated/metadata.ts +291 -141
- package/src/generated/openapi-stripped.json +5954 -3523
- package/src/generated/path-mapping.ts +28 -16
- package/src/generated/schema.d.ts +4390 -2357
- package/src/generated/services/bookmarks.ts +1 -1
- package/src/generated/services/boosts.ts +12 -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 +1 -1
- package/src/generated/services/events.ts +6 -0
- package/src/generated/services/everything.ts +14 -14
- 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 +7 -4
- package/src/generated/services/messages.ts +3 -1
- package/src/generated/services/my-notes.ts +1 -1
- 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 +3 -30
- package/src/generated/services/uploads.ts +71 -2
- package/src/generated/services/vaults.ts +6 -0
|
@@ -0,0 +1,201 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Folders 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
|
+
/** Folder entity from the Basecamp API. */
|
|
16
|
+
export type Folder = components["schemas"]["Folder"];
|
|
17
|
+
/** FolderWithProjects entity from the Basecamp API. */
|
|
18
|
+
export type FolderWithProjects = components["schemas"]["FolderWithProjects"];
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* Request parameters for createFolder.
|
|
22
|
+
*/
|
|
23
|
+
export interface CreateFolderFolderRequest {
|
|
24
|
+
/** The folder's name. Defaults to `New folder` when blank, null, or omitted. */
|
|
25
|
+
name?: string;
|
|
26
|
+
/** IDs of the projects to file into the folder — the same ids the folder
|
|
27
|
+
reports back as `bucket_ids` and expands as `projects`. This does not
|
|
28
|
+
round-trip under its own name. Omit it, or send null or an empty array,
|
|
29
|
+
for an empty folder. */
|
|
30
|
+
projectIds?: number[];
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
/**
|
|
34
|
+
* Request parameters for updateFolder.
|
|
35
|
+
*/
|
|
36
|
+
export interface UpdateFolderFolderRequest {
|
|
37
|
+
/** The folder's new name. Blank is rejected with 422 — unlike create, update
|
|
38
|
+
does not fall back to a default name. */
|
|
39
|
+
name: string;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
// =============================================================================
|
|
44
|
+
// Service
|
|
45
|
+
// =============================================================================
|
|
46
|
+
|
|
47
|
+
/**
|
|
48
|
+
* Service for Folders operations.
|
|
49
|
+
*/
|
|
50
|
+
export class FoldersService extends BaseService {
|
|
51
|
+
|
|
52
|
+
/**
|
|
53
|
+
* List the authenticated user's folders in home-screen order.
|
|
54
|
+
* @returns Array of Folder
|
|
55
|
+
*
|
|
56
|
+
* @example
|
|
57
|
+
* ```ts
|
|
58
|
+
* const result = await client.folders.listFolders();
|
|
59
|
+
* ```
|
|
60
|
+
*/
|
|
61
|
+
async listFolders(): Promise<Folder[]> {
|
|
62
|
+
const response = await this.request(
|
|
63
|
+
{
|
|
64
|
+
service: "Folders",
|
|
65
|
+
operation: "ListFolders",
|
|
66
|
+
resourceType: "folder",
|
|
67
|
+
isMutation: false,
|
|
68
|
+
},
|
|
69
|
+
() =>
|
|
70
|
+
this.client.GET("/stacks.json", {
|
|
71
|
+
})
|
|
72
|
+
);
|
|
73
|
+
return response ?? [];
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
/**
|
|
77
|
+
* Create a folder for the authenticated user and file the given projects into it.
|
|
78
|
+
* @param req - Folder creation parameters
|
|
79
|
+
* @returns The FolderWithProjects
|
|
80
|
+
* @throws {BasecampError} If required fields are missing or invalid
|
|
81
|
+
*
|
|
82
|
+
* @example
|
|
83
|
+
* ```ts
|
|
84
|
+
* const result = await client.folders.createFolder({ });
|
|
85
|
+
* ```
|
|
86
|
+
*/
|
|
87
|
+
async createFolder(req: CreateFolderFolderRequest): Promise<FolderWithProjects> {
|
|
88
|
+
const response = await this.request(
|
|
89
|
+
{
|
|
90
|
+
service: "Folders",
|
|
91
|
+
operation: "CreateFolder",
|
|
92
|
+
resourceType: "folder",
|
|
93
|
+
isMutation: true,
|
|
94
|
+
},
|
|
95
|
+
() =>
|
|
96
|
+
this.client.POST("/stacks.json", {
|
|
97
|
+
body: {
|
|
98
|
+
name: req.name,
|
|
99
|
+
project_ids: req.projectIds,
|
|
100
|
+
},
|
|
101
|
+
})
|
|
102
|
+
);
|
|
103
|
+
return response;
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
/**
|
|
107
|
+
* Get one folder, with the projects grouped inside it expanded under `projects`.
|
|
108
|
+
* @param folderId - The folder ID
|
|
109
|
+
* @returns The FolderWithProjects
|
|
110
|
+
* @throws {BasecampError} If the resource is not found
|
|
111
|
+
*
|
|
112
|
+
* @example
|
|
113
|
+
* ```ts
|
|
114
|
+
* const result = await client.folders.getFolder(123);
|
|
115
|
+
* ```
|
|
116
|
+
*/
|
|
117
|
+
async getFolder(folderId: number): Promise<FolderWithProjects> {
|
|
118
|
+
const response = await this.request(
|
|
119
|
+
{
|
|
120
|
+
service: "Folders",
|
|
121
|
+
operation: "GetFolder",
|
|
122
|
+
resourceType: "folder",
|
|
123
|
+
isMutation: false,
|
|
124
|
+
resourceId: folderId,
|
|
125
|
+
},
|
|
126
|
+
() =>
|
|
127
|
+
this.client.GET("/stacks/{folderId}", {
|
|
128
|
+
params: {
|
|
129
|
+
path: { folderId },
|
|
130
|
+
},
|
|
131
|
+
})
|
|
132
|
+
);
|
|
133
|
+
return response;
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
/**
|
|
137
|
+
* Rename a folder.
|
|
138
|
+
* @param folderId - The folder ID
|
|
139
|
+
* @param req - Folder update parameters
|
|
140
|
+
* @returns The FolderWithProjects
|
|
141
|
+
* @throws {BasecampError} If the resource is not found or fields are invalid
|
|
142
|
+
*
|
|
143
|
+
* @example
|
|
144
|
+
* ```ts
|
|
145
|
+
* const result = await client.folders.updateFolder(123, { name: "My example" });
|
|
146
|
+
* ```
|
|
147
|
+
*/
|
|
148
|
+
async updateFolder(folderId: number, req: UpdateFolderFolderRequest): Promise<FolderWithProjects> {
|
|
149
|
+
if (!req.name) {
|
|
150
|
+
throw Errors.validation("Name is required");
|
|
151
|
+
}
|
|
152
|
+
const response = await this.request(
|
|
153
|
+
{
|
|
154
|
+
service: "Folders",
|
|
155
|
+
operation: "UpdateFolder",
|
|
156
|
+
resourceType: "folder",
|
|
157
|
+
isMutation: true,
|
|
158
|
+
resourceId: folderId,
|
|
159
|
+
},
|
|
160
|
+
() =>
|
|
161
|
+
this.client.PUT("/stacks/{folderId}", {
|
|
162
|
+
params: {
|
|
163
|
+
path: { folderId },
|
|
164
|
+
},
|
|
165
|
+
body: {
|
|
166
|
+
name: req.name,
|
|
167
|
+
},
|
|
168
|
+
})
|
|
169
|
+
);
|
|
170
|
+
return response;
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
/**
|
|
174
|
+
* Delete a folder and unpin its projects from the home screen.
|
|
175
|
+
* @param folderId - The folder ID
|
|
176
|
+
* @returns void
|
|
177
|
+
* @throws {BasecampError} If the request fails
|
|
178
|
+
*
|
|
179
|
+
* @example
|
|
180
|
+
* ```ts
|
|
181
|
+
* await client.folders.deleteFolder(123);
|
|
182
|
+
* ```
|
|
183
|
+
*/
|
|
184
|
+
async deleteFolder(folderId: number): Promise<void> {
|
|
185
|
+
await this.request(
|
|
186
|
+
{
|
|
187
|
+
service: "Folders",
|
|
188
|
+
operation: "DeleteFolder",
|
|
189
|
+
resourceType: "folder",
|
|
190
|
+
isMutation: true,
|
|
191
|
+
resourceId: folderId,
|
|
192
|
+
},
|
|
193
|
+
() =>
|
|
194
|
+
this.client.DELETE("/stacks/{folderId}", {
|
|
195
|
+
params: {
|
|
196
|
+
path: { folderId },
|
|
197
|
+
},
|
|
198
|
+
})
|
|
199
|
+
);
|
|
200
|
+
}
|
|
201
|
+
}
|
|
@@ -8,7 +8,6 @@ import { BaseService } from "../../services/base.js";
|
|
|
8
8
|
import type { components } from "../schema.js";
|
|
9
9
|
import { ListResult } from "../../pagination.js";
|
|
10
10
|
import type { PaginationOptions } from "../../pagination.js";
|
|
11
|
-
import { Errors } from "../../errors.js";
|
|
12
11
|
|
|
13
12
|
// =============================================================================
|
|
14
13
|
// Types
|
|
@@ -25,14 +24,8 @@ export type Inbox = components["schemas"]["Inbox"];
|
|
|
25
24
|
* Options for listReplies.
|
|
26
25
|
*/
|
|
27
26
|
export interface ListRepliesForwardOptions extends PaginationOptions {
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
/**
|
|
31
|
-
* Request parameters for createReply.
|
|
32
|
-
*/
|
|
33
|
-
export interface CreateReplyForwardRequest {
|
|
34
|
-
/** Text content */
|
|
35
|
-
content: string;
|
|
27
|
+
/** Page number for paginating through results. Defaults to 1. A positive value selects exactly that page, not a starting offset; see SPEC section 8. */
|
|
28
|
+
page?: number;
|
|
36
29
|
}
|
|
37
30
|
|
|
38
31
|
/**
|
|
@@ -43,6 +36,8 @@ export interface ListForwardOptions extends PaginationOptions {
|
|
|
43
36
|
sort?: "created_at" | "updated_at";
|
|
44
37
|
/** Filter by direction */
|
|
45
38
|
direction?: "asc" | "desc";
|
|
39
|
+
/** Page number for paginating through results. Defaults to 1. A positive value selects exactly that page, not a starting offset; see SPEC section 8. */
|
|
40
|
+
page?: number;
|
|
46
41
|
}
|
|
47
42
|
|
|
48
43
|
|
|
@@ -94,6 +89,9 @@ export class ForwardsService extends BaseService {
|
|
|
94
89
|
* @example
|
|
95
90
|
* ```ts
|
|
96
91
|
* const result = await client.forwards.listReplies(123);
|
|
92
|
+
*
|
|
93
|
+
* // With options
|
|
94
|
+
* const filtered = await client.forwards.listReplies(123, { page: 1 });
|
|
97
95
|
* ```
|
|
98
96
|
*/
|
|
99
97
|
async listReplies(forwardId: number, options?: ListRepliesForwardOptions): Promise<ListResult<ForwardReply>> {
|
|
@@ -109,49 +107,13 @@ export class ForwardsService extends BaseService {
|
|
|
109
107
|
this.client.GET("/inbox_forwards/{forwardId}/replies.json", {
|
|
110
108
|
params: {
|
|
111
109
|
path: { forwardId },
|
|
110
|
+
query: { page: options?.page },
|
|
112
111
|
},
|
|
113
112
|
})
|
|
114
113
|
, options
|
|
115
114
|
);
|
|
116
115
|
}
|
|
117
116
|
|
|
118
|
-
/**
|
|
119
|
-
* Create a reply to a forward
|
|
120
|
-
* @param forwardId - The forward ID
|
|
121
|
-
* @param req - Forward_reply creation parameters
|
|
122
|
-
* @returns The ForwardReply
|
|
123
|
-
* @throws {BasecampError} If required fields are missing or invalid
|
|
124
|
-
*
|
|
125
|
-
* @example
|
|
126
|
-
* ```ts
|
|
127
|
-
* const result = await client.forwards.createReply(123, { content: "Hello world" });
|
|
128
|
-
* ```
|
|
129
|
-
*/
|
|
130
|
-
async createReply(forwardId: number, req: CreateReplyForwardRequest): Promise<ForwardReply> {
|
|
131
|
-
if (!req.content) {
|
|
132
|
-
throw Errors.validation("Content is required");
|
|
133
|
-
}
|
|
134
|
-
const response = await this.request(
|
|
135
|
-
{
|
|
136
|
-
service: "Forwards",
|
|
137
|
-
operation: "CreateForwardReply",
|
|
138
|
-
resourceType: "forward_reply",
|
|
139
|
-
isMutation: true,
|
|
140
|
-
resourceId: forwardId,
|
|
141
|
-
},
|
|
142
|
-
() =>
|
|
143
|
-
this.client.POST("/inbox_forwards/{forwardId}/replies.json", {
|
|
144
|
-
params: {
|
|
145
|
-
path: { forwardId },
|
|
146
|
-
},
|
|
147
|
-
body: {
|
|
148
|
-
content: req.content,
|
|
149
|
-
},
|
|
150
|
-
})
|
|
151
|
-
);
|
|
152
|
-
return response;
|
|
153
|
-
}
|
|
154
|
-
|
|
155
117
|
/**
|
|
156
118
|
* Get a forward reply by ID
|
|
157
119
|
* @param forwardId - The forward ID
|
|
@@ -237,10 +199,10 @@ export class ForwardsService extends BaseService {
|
|
|
237
199
|
resourceId: inboxId,
|
|
238
200
|
},
|
|
239
201
|
() =>
|
|
240
|
-
this.client.GET("/inboxes/{inboxId}/
|
|
202
|
+
this.client.GET("/inboxes/{inboxId}/inbox_forwards.json", {
|
|
241
203
|
params: {
|
|
242
204
|
path: { inboxId },
|
|
243
|
-
query: { sort: options?.sort, direction: options?.direction },
|
|
205
|
+
query: { sort: options?.sort, direction: options?.direction, page: options?.page },
|
|
244
206
|
},
|
|
245
207
|
})
|
|
246
208
|
, options
|
|
@@ -35,6 +35,8 @@ export interface ToggleGaugeGaugeRequest {
|
|
|
35
35
|
* Options for listGaugeNeedles.
|
|
36
36
|
*/
|
|
37
37
|
export interface ListGaugeNeedlesGaugeOptions extends PaginationOptions {
|
|
38
|
+
/** Page number for paginating through results. Defaults to 1. A positive value selects exactly that page, not a starting offset; see SPEC section 8. */
|
|
39
|
+
page?: number;
|
|
38
40
|
}
|
|
39
41
|
|
|
40
42
|
/**
|
|
@@ -56,6 +58,8 @@ export interface ListGaugesGaugeOptions extends PaginationOptions {
|
|
|
56
58
|
/** Comma-separated list of project IDs. When provided, results are returned
|
|
57
59
|
in the order specified instead of by risk level. */
|
|
58
60
|
bucketIds?: string;
|
|
61
|
+
/** Page number for paginating through results. Defaults to 1. A positive value selects exactly that page, not a starting offset; see SPEC section 8. */
|
|
62
|
+
page?: number;
|
|
59
63
|
}
|
|
60
64
|
|
|
61
65
|
|
|
@@ -205,6 +209,9 @@ export class GaugesService extends BaseService {
|
|
|
205
209
|
* @example
|
|
206
210
|
* ```ts
|
|
207
211
|
* const result = await client.gauges.listGaugeNeedles(123);
|
|
212
|
+
*
|
|
213
|
+
* // With options
|
|
214
|
+
* const filtered = await client.gauges.listGaugeNeedles(123, { page: 1 });
|
|
208
215
|
* ```
|
|
209
216
|
*/
|
|
210
217
|
async listGaugeNeedles(projectId: number, options?: ListGaugeNeedlesGaugeOptions): Promise<components["schemas"]["ListGaugeNeedlesResponseContent"]> {
|
|
@@ -220,6 +227,7 @@ export class GaugesService extends BaseService {
|
|
|
220
227
|
this.client.GET("/projects/{projectId}/gauge/needles.json", {
|
|
221
228
|
params: {
|
|
222
229
|
path: { projectId },
|
|
230
|
+
query: { page: options?.page },
|
|
223
231
|
},
|
|
224
232
|
})
|
|
225
233
|
, options
|
|
@@ -289,7 +297,7 @@ export class GaugesService extends BaseService {
|
|
|
289
297
|
() =>
|
|
290
298
|
this.client.GET("/reports/gauges.json", {
|
|
291
299
|
params: {
|
|
292
|
-
query: { "bucket_ids": options?.bucketIds },
|
|
300
|
+
query: { "bucket_ids": options?.bucketIds, page: options?.page },
|
|
293
301
|
},
|
|
294
302
|
})
|
|
295
303
|
, options
|
|
@@ -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,19 +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";
|
|
8
12
|
export { TodosService } from "./todos.js";
|
|
13
|
+
export { CloudFilesService } from "./cloud-files.js";
|
|
14
|
+
export { GoogleDocumentsService } from "./google-documents.js";
|
|
9
15
|
export { WebhooksService } from "./webhooks.js";
|
|
10
16
|
export { CalendarsService } from "./calendars.js";
|
|
11
17
|
export { CardsService } from "./cards.js";
|
|
12
18
|
export { CardStepsService } from "./card-steps.js";
|
|
13
19
|
export { CardTablesService } from "./card-tables.js";
|
|
14
20
|
export { EverythingService } from "./everything.js";
|
|
15
|
-
export { CampfiresService } from "./campfires.js";
|
|
16
21
|
export { PeopleService } from "./people.js";
|
|
17
|
-
export { ClientApprovalsService } from "./client-approvals.js";
|
|
18
|
-
export { ClientCorrespondencesService } from "./client-correspondences.js";
|
|
19
|
-
export { ClientRepliesService } from "./client-replies.js";
|
|
20
22
|
export { CommentsService } from "./comments.js";
|
|
21
23
|
export { DocumentsService } from "./documents.js";
|
|
22
24
|
export { GaugesService } from "./gauges.js";
|
|
@@ -41,6 +43,7 @@ export { SubscriptionsService } from "./subscriptions.js";
|
|
|
41
43
|
export { ReportsService } from "./reports.js";
|
|
42
44
|
export { SchedulesService } from "./schedules.js";
|
|
43
45
|
export { SearchService } from "./search.js";
|
|
46
|
+
export { FoldersService } from "./folders.js";
|
|
44
47
|
export { TemplatesService } from "./templates.js";
|
|
45
48
|
export { TodolistGroupsService } from "./todolist-groups.js";
|
|
46
49
|
export { TodolistsService } from "./todolists.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
|
|
@@ -59,7 +59,7 @@ export class MyNotesService extends BaseService {
|
|
|
59
59
|
}
|
|
60
60
|
|
|
61
61
|
/**
|
|
62
|
-
* Replace the note's content, recording a new revision server-side.
|
|
62
|
+
* Replace the note's content, recording a new revision server-side.
|
|
63
63
|
* @param req - My_note update parameters
|
|
64
64
|
* @returns The MyNote
|
|
65
65
|
* @throws {BasecampError} If the resource is not found or fields are invalid
|
|
@@ -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
|