@37signals/basecamp 0.20.0 → 0.22.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 +1 -0
- package/dist/client.d.ts +5 -2
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +5 -2
- package/dist/client.js.map +1 -1
- package/dist/generated/metadata.d.ts.map +1 -1
- package/dist/generated/metadata.js +176 -2
- package/dist/generated/metadata.js.map +1 -1
- package/dist/generated/metadata.ts +176 -2
- package/dist/generated/openapi-stripped.json +2882 -1276
- package/dist/generated/path-mapping.d.ts.map +1 -1
- package/dist/generated/path-mapping.js +15 -1
- package/dist/generated/path-mapping.js.map +1 -1
- package/dist/generated/path-mapping.ts +15 -1
- package/dist/generated/person-id-sites.d.ts.map +1 -1
- package/dist/generated/person-id-sites.js +61 -2
- package/dist/generated/person-id-sites.js.map +1 -1
- package/dist/generated/person-id-sites.ts +61 -2
- package/dist/generated/schema.d.ts +1406 -92
- package/dist/generated/services/bookmarks.d.ts +1 -1
- package/dist/generated/services/bookmarks.js +1 -1
- package/dist/generated/services/bookmarks.ts +1 -1
- package/dist/generated/services/boosts.d.ts +2 -2
- package/dist/generated/services/boosts.js +2 -2
- package/dist/generated/services/boosts.ts +2 -2
- package/dist/generated/services/campfires.d.ts +4 -4
- package/dist/generated/services/campfires.js +4 -4
- package/dist/generated/services/campfires.ts +4 -4
- package/dist/generated/services/card-steps.d.ts +15 -11
- package/dist/generated/services/card-steps.d.ts.map +1 -1
- package/dist/generated/services/card-steps.js +4 -4
- package/dist/generated/services/card-steps.js.map +1 -1
- package/dist/generated/services/card-steps.ts +15 -11
- package/dist/generated/services/cards.d.ts +1 -1
- package/dist/generated/services/cards.js +1 -1
- package/dist/generated/services/cards.ts +1 -1
- package/dist/generated/services/checkins.d.ts +9 -8
- package/dist/generated/services/checkins.d.ts.map +1 -1
- package/dist/generated/services/checkins.js +6 -6
- package/dist/generated/services/checkins.js.map +1 -1
- package/dist/generated/services/checkins.ts +11 -10
- package/dist/generated/services/client-approvals.d.ts +1 -1
- package/dist/generated/services/client-approvals.js +1 -1
- package/dist/generated/services/client-approvals.ts +1 -1
- package/dist/generated/services/client-correspondences.d.ts +1 -1
- package/dist/generated/services/client-correspondences.js +1 -1
- package/dist/generated/services/client-correspondences.ts +1 -1
- package/dist/generated/services/client-replies.d.ts +1 -1
- package/dist/generated/services/client-replies.js +1 -1
- package/dist/generated/services/client-replies.ts +1 -1
- package/dist/generated/services/comments.d.ts +1 -1
- package/dist/generated/services/comments.js +1 -1
- package/dist/generated/services/comments.ts +1 -1
- package/dist/generated/services/documents.d.ts +1 -1
- package/dist/generated/services/documents.js +1 -1
- package/dist/generated/services/documents.ts +1 -1
- package/dist/generated/services/drafts.d.ts +1 -1
- package/dist/generated/services/drafts.js +1 -1
- package/dist/generated/services/drafts.ts +1 -1
- package/dist/generated/services/events.d.ts +1 -1
- package/dist/generated/services/events.js +1 -1
- package/dist/generated/services/events.ts +1 -1
- package/dist/generated/services/everything.d.ts +14 -14
- package/dist/generated/services/everything.js +14 -14
- package/dist/generated/services/everything.ts +14 -14
- package/dist/generated/services/forwards.d.ts +2 -2
- package/dist/generated/services/forwards.js +2 -2
- package/dist/generated/services/forwards.ts +2 -2
- package/dist/generated/services/index.d.ts +2 -1
- package/dist/generated/services/index.d.ts.map +1 -1
- package/dist/generated/services/index.js +2 -1
- package/dist/generated/services/index.js.map +1 -1
- package/dist/generated/services/index.ts +2 -1
- package/dist/generated/services/message-types.d.ts +1 -1
- package/dist/generated/services/message-types.js +1 -1
- package/dist/generated/services/message-types.ts +1 -1
- package/dist/generated/services/messages.d.ts +1 -1
- package/dist/generated/services/messages.js +1 -1
- package/dist/generated/services/messages.ts +1 -1
- package/dist/generated/services/my-notifications.d.ts +3 -2
- package/dist/generated/services/my-notifications.d.ts.map +1 -1
- package/dist/generated/services/my-notifications.js +1 -1
- package/dist/generated/services/my-notifications.js.map +1 -1
- package/dist/generated/services/my-notifications.ts +3 -2
- package/dist/generated/services/people.d.ts +3 -3
- package/dist/generated/services/people.js +3 -3
- package/dist/generated/services/people.ts +3 -3
- package/dist/generated/services/projects.d.ts +1 -1
- package/dist/generated/services/projects.js +1 -1
- package/dist/generated/services/projects.ts +1 -1
- package/dist/generated/services/recordings.d.ts +27 -3
- package/dist/generated/services/recordings.d.ts.map +1 -1
- package/dist/generated/services/recordings.js +32 -3
- package/dist/generated/services/recordings.js.map +1 -1
- package/dist/generated/services/recordings.ts +49 -3
- package/dist/generated/services/reports.d.ts +1 -1
- package/dist/generated/services/reports.js +1 -1
- package/dist/generated/services/reports.ts +1 -1
- package/dist/generated/services/schedules.d.ts +1 -1
- package/dist/generated/services/schedules.js +1 -1
- package/dist/generated/services/schedules.ts +1 -1
- package/dist/generated/services/subtasks.d.ts +157 -0
- package/dist/generated/services/subtasks.d.ts.map +1 -0
- package/dist/generated/services/subtasks.js +240 -0
- package/dist/generated/services/subtasks.js.map +1 -0
- package/dist/generated/services/subtasks.ts +336 -0
- package/dist/generated/services/templates.d.ts +114 -10
- package/dist/generated/services/templates.d.ts.map +1 -1
- package/dist/generated/services/templates.js +147 -10
- package/dist/generated/services/templates.js.map +1 -1
- package/dist/generated/services/templates.ts +220 -13
- package/dist/generated/services/timeline.d.ts +1 -1
- package/dist/generated/services/timeline.js +1 -1
- package/dist/generated/services/timeline.ts +1 -1
- package/dist/generated/services/timesheets.d.ts +3 -3
- package/dist/generated/services/timesheets.js +3 -3
- package/dist/generated/services/timesheets.ts +3 -3
- package/dist/generated/services/todolist-groups.d.ts +1 -1
- package/dist/generated/services/todolist-groups.js +1 -1
- package/dist/generated/services/todolist-groups.ts +1 -1
- package/dist/generated/services/todolists.d.ts +1 -1
- package/dist/generated/services/todolists.js +1 -1
- package/dist/generated/services/todolists.ts +1 -1
- package/dist/generated/services/todos.d.ts +1 -1
- package/dist/generated/services/todos.js +1 -1
- package/dist/generated/services/todos.ts +1 -1
- package/dist/generated/services/uploads.d.ts +2 -2
- package/dist/generated/services/uploads.js +2 -2
- package/dist/generated/services/uploads.ts +2 -2
- package/dist/generated/services/vaults.d.ts +1 -1
- package/dist/generated/services/vaults.js +1 -1
- package/dist/generated/services/vaults.ts +1 -1
- package/dist/generated/services/webhooks.d.ts +1 -1
- package/dist/generated/services/webhooks.js +1 -1
- package/dist/generated/services/webhooks.ts +1 -1
- package/dist/index.d.ts +3 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -0
- package/dist/index.js.map +1 -1
- package/package.json +3 -3
- package/src/generated/metadata.ts +176 -2
- package/src/generated/openapi-stripped.json +2882 -1276
- package/src/generated/path-mapping.ts +15 -1
- package/src/generated/person-id-sites.ts +61 -2
- package/src/generated/schema.d.ts +1406 -92
- package/src/generated/services/bookmarks.ts +1 -1
- package/src/generated/services/boosts.ts +2 -2
- package/src/generated/services/campfires.ts +4 -4
- package/src/generated/services/card-steps.ts +15 -11
- package/src/generated/services/cards.ts +1 -1
- package/src/generated/services/checkins.ts +11 -10
- package/src/generated/services/client-approvals.ts +1 -1
- package/src/generated/services/client-correspondences.ts +1 -1
- package/src/generated/services/client-replies.ts +1 -1
- package/src/generated/services/comments.ts +1 -1
- package/src/generated/services/documents.ts +1 -1
- package/src/generated/services/drafts.ts +1 -1
- package/src/generated/services/events.ts +1 -1
- package/src/generated/services/everything.ts +14 -14
- package/src/generated/services/forwards.ts +2 -2
- package/src/generated/services/index.ts +2 -1
- package/src/generated/services/message-types.ts +1 -1
- package/src/generated/services/messages.ts +1 -1
- package/src/generated/services/my-notifications.ts +3 -2
- package/src/generated/services/people.ts +3 -3
- package/src/generated/services/projects.ts +1 -1
- package/src/generated/services/recordings.ts +49 -3
- package/src/generated/services/reports.ts +1 -1
- package/src/generated/services/schedules.ts +1 -1
- package/src/generated/services/subtasks.ts +336 -0
- package/src/generated/services/templates.ts +220 -13
- package/src/generated/services/timeline.ts +1 -1
- package/src/generated/services/timesheets.ts +3 -3
- package/src/generated/services/todolist-groups.ts +1 -1
- package/src/generated/services/todolists.ts +1 -1
- package/src/generated/services/todos.ts +1 -1
- package/src/generated/services/uploads.ts +2 -2
- package/src/generated/services/vaults.ts +1 -1
- package/src/generated/services/webhooks.ts +1 -1
|
@@ -0,0 +1,336 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Subtasks 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 { ListResult } from "../../pagination.js";
|
|
10
|
+
import type { PaginationOptions } from "../../pagination.js";
|
|
11
|
+
import { Errors } from "../../errors.js";
|
|
12
|
+
|
|
13
|
+
// =============================================================================
|
|
14
|
+
// Types
|
|
15
|
+
// =============================================================================
|
|
16
|
+
|
|
17
|
+
/** Subtask entity from the Basecamp API. */
|
|
18
|
+
export type Subtask = components["schemas"]["Subtask"];
|
|
19
|
+
/** @deprecated renamed to Subtask, the same Kanban::Step record. */
|
|
20
|
+
export type CardStep = Subtask;
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* Options for list.
|
|
24
|
+
*/
|
|
25
|
+
export interface ListSubtaskOptions extends PaginationOptions {
|
|
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;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
* Request parameters for create.
|
|
32
|
+
*/
|
|
33
|
+
export interface CreateSubtaskRequest {
|
|
34
|
+
/** Title */
|
|
35
|
+
title: string;
|
|
36
|
+
/** Due date (YYYY-MM-DD) */
|
|
37
|
+
dueOn?: string;
|
|
38
|
+
/** Person IDs to assign to */
|
|
39
|
+
assigneeIds?: number[];
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
/**
|
|
43
|
+
* Request parameters for update.
|
|
44
|
+
*/
|
|
45
|
+
export interface UpdateSubtaskRequest {
|
|
46
|
+
/** Title */
|
|
47
|
+
title?: string;
|
|
48
|
+
/** Due date (YYYY-MM-DD) */
|
|
49
|
+
dueOn?: string;
|
|
50
|
+
/** Person IDs to assign to */
|
|
51
|
+
assigneeIds?: number[];
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
/**
|
|
55
|
+
* Request parameters for reposition.
|
|
56
|
+
*/
|
|
57
|
+
export interface RepositionSubtaskRequest {
|
|
58
|
+
/** The 1-based position to move it to */
|
|
59
|
+
position: number;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
|
|
63
|
+
// =============================================================================
|
|
64
|
+
// Service
|
|
65
|
+
// =============================================================================
|
|
66
|
+
|
|
67
|
+
/**
|
|
68
|
+
* Service for Subtasks operations.
|
|
69
|
+
*/
|
|
70
|
+
export class SubtasksService extends BaseService {
|
|
71
|
+
|
|
72
|
+
/**
|
|
73
|
+
* List a recording's subtasks, in position order
|
|
74
|
+
* @param recordingId - The recording ID
|
|
75
|
+
* @param options - Optional query parameters
|
|
76
|
+
* @returns Every Subtask across all pages, with .meta.totalCount
|
|
77
|
+
*
|
|
78
|
+
* @example
|
|
79
|
+
* ```ts
|
|
80
|
+
* const result = await client.subtasks.list(123);
|
|
81
|
+
*
|
|
82
|
+
* // With options
|
|
83
|
+
* const filtered = await client.subtasks.list(123, { page: 1 });
|
|
84
|
+
* ```
|
|
85
|
+
*/
|
|
86
|
+
async list(recordingId: number, options?: ListSubtaskOptions): Promise<ListResult<Subtask>> {
|
|
87
|
+
return this.requestPaginated(
|
|
88
|
+
{
|
|
89
|
+
service: "Subtasks",
|
|
90
|
+
operation: "ListSubtasks",
|
|
91
|
+
resourceType: "subtask",
|
|
92
|
+
isMutation: false,
|
|
93
|
+
resourceId: recordingId,
|
|
94
|
+
},
|
|
95
|
+
() =>
|
|
96
|
+
this.client.GET("/recordings/{recordingId}/subtasks.json", {
|
|
97
|
+
params: {
|
|
98
|
+
path: { recordingId },
|
|
99
|
+
query: { page: options?.page },
|
|
100
|
+
},
|
|
101
|
+
})
|
|
102
|
+
, options
|
|
103
|
+
);
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
/**
|
|
107
|
+
* Create a subtask under a to-do or a card
|
|
108
|
+
* @param recordingId - The recording ID
|
|
109
|
+
* @param req - Subtask creation parameters
|
|
110
|
+
* @returns The Subtask
|
|
111
|
+
* @throws {BasecampError} If required fields are missing or invalid
|
|
112
|
+
*
|
|
113
|
+
* @example
|
|
114
|
+
* ```ts
|
|
115
|
+
* const result = await client.subtasks.create(123, { title: "example" });
|
|
116
|
+
* ```
|
|
117
|
+
*/
|
|
118
|
+
async create(recordingId: number, req: CreateSubtaskRequest): Promise<Subtask> {
|
|
119
|
+
if (!req.title) {
|
|
120
|
+
throw Errors.validation("Title is required");
|
|
121
|
+
}
|
|
122
|
+
if (req.dueOn && !/^\d{4}-\d{2}-\d{2}$/.test(req.dueOn)) {
|
|
123
|
+
throw Errors.validation("Due on must be in YYYY-MM-DD format");
|
|
124
|
+
}
|
|
125
|
+
const response = await this.request(
|
|
126
|
+
{
|
|
127
|
+
service: "Subtasks",
|
|
128
|
+
operation: "CreateSubtask",
|
|
129
|
+
resourceType: "subtask",
|
|
130
|
+
isMutation: true,
|
|
131
|
+
resourceId: recordingId,
|
|
132
|
+
},
|
|
133
|
+
() =>
|
|
134
|
+
this.client.POST("/recordings/{recordingId}/subtasks.json", {
|
|
135
|
+
params: {
|
|
136
|
+
path: { recordingId },
|
|
137
|
+
},
|
|
138
|
+
body: {
|
|
139
|
+
title: req.title,
|
|
140
|
+
due_on: req.dueOn,
|
|
141
|
+
assignee_ids: req.assigneeIds,
|
|
142
|
+
},
|
|
143
|
+
})
|
|
144
|
+
);
|
|
145
|
+
return response;
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
/**
|
|
149
|
+
* Get a subtask by ID
|
|
150
|
+
* @param subtaskId - The subtask ID
|
|
151
|
+
* @returns The Subtask
|
|
152
|
+
* @throws {BasecampError} If the resource is not found
|
|
153
|
+
*
|
|
154
|
+
* @example
|
|
155
|
+
* ```ts
|
|
156
|
+
* const result = await client.subtasks.get(123);
|
|
157
|
+
* ```
|
|
158
|
+
*/
|
|
159
|
+
async get(subtaskId: number): Promise<Subtask> {
|
|
160
|
+
const response = await this.request(
|
|
161
|
+
{
|
|
162
|
+
service: "Subtasks",
|
|
163
|
+
operation: "GetSubtask",
|
|
164
|
+
resourceType: "subtask",
|
|
165
|
+
isMutation: false,
|
|
166
|
+
resourceId: subtaskId,
|
|
167
|
+
},
|
|
168
|
+
() =>
|
|
169
|
+
this.client.GET("/subtasks/{subtaskId}", {
|
|
170
|
+
params: {
|
|
171
|
+
path: { subtaskId },
|
|
172
|
+
},
|
|
173
|
+
})
|
|
174
|
+
);
|
|
175
|
+
return response;
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
/**
|
|
179
|
+
* Update a subtask
|
|
180
|
+
* @param subtaskId - The subtask ID
|
|
181
|
+
* @param req - Subtask update parameters
|
|
182
|
+
* @returns The Subtask
|
|
183
|
+
* @throws {BasecampError} If the resource is not found or fields are invalid
|
|
184
|
+
*
|
|
185
|
+
* @example
|
|
186
|
+
* ```ts
|
|
187
|
+
* const result = await client.subtasks.update(123, { });
|
|
188
|
+
* ```
|
|
189
|
+
*/
|
|
190
|
+
async update(subtaskId: number, req: UpdateSubtaskRequest): Promise<Subtask> {
|
|
191
|
+
if (req.dueOn && !/^\d{4}-\d{2}-\d{2}$/.test(req.dueOn)) {
|
|
192
|
+
throw Errors.validation("Due on must be in YYYY-MM-DD format");
|
|
193
|
+
}
|
|
194
|
+
const response = await this.request(
|
|
195
|
+
{
|
|
196
|
+
service: "Subtasks",
|
|
197
|
+
operation: "UpdateSubtask",
|
|
198
|
+
resourceType: "subtask",
|
|
199
|
+
isMutation: true,
|
|
200
|
+
resourceId: subtaskId,
|
|
201
|
+
},
|
|
202
|
+
() =>
|
|
203
|
+
this.client.PUT("/subtasks/{subtaskId}", {
|
|
204
|
+
params: {
|
|
205
|
+
path: { subtaskId },
|
|
206
|
+
},
|
|
207
|
+
body: {
|
|
208
|
+
title: req.title,
|
|
209
|
+
due_on: req.dueOn,
|
|
210
|
+
assignee_ids: req.assigneeIds,
|
|
211
|
+
},
|
|
212
|
+
})
|
|
213
|
+
);
|
|
214
|
+
return response;
|
|
215
|
+
}
|
|
216
|
+
|
|
217
|
+
/**
|
|
218
|
+
* Delete a subtask
|
|
219
|
+
* @param subtaskId - The subtask ID
|
|
220
|
+
* @returns void
|
|
221
|
+
* @throws {BasecampError} If the request fails
|
|
222
|
+
*
|
|
223
|
+
* @example
|
|
224
|
+
* ```ts
|
|
225
|
+
* await client.subtasks.delete(123);
|
|
226
|
+
* ```
|
|
227
|
+
*/
|
|
228
|
+
async delete(subtaskId: number): Promise<void> {
|
|
229
|
+
await this.request(
|
|
230
|
+
{
|
|
231
|
+
service: "Subtasks",
|
|
232
|
+
operation: "DeleteSubtask",
|
|
233
|
+
resourceType: "subtask",
|
|
234
|
+
isMutation: true,
|
|
235
|
+
resourceId: subtaskId,
|
|
236
|
+
},
|
|
237
|
+
() =>
|
|
238
|
+
this.client.DELETE("/subtasks/{subtaskId}", {
|
|
239
|
+
params: {
|
|
240
|
+
path: { subtaskId },
|
|
241
|
+
},
|
|
242
|
+
})
|
|
243
|
+
);
|
|
244
|
+
}
|
|
245
|
+
|
|
246
|
+
/**
|
|
247
|
+
* Mark a subtask as completed
|
|
248
|
+
* @param subtaskId - The subtask ID
|
|
249
|
+
* @returns void
|
|
250
|
+
* @throws {BasecampError} If the request fails
|
|
251
|
+
*
|
|
252
|
+
* @example
|
|
253
|
+
* ```ts
|
|
254
|
+
* await client.subtasks.complete(123);
|
|
255
|
+
* ```
|
|
256
|
+
*/
|
|
257
|
+
async complete(subtaskId: number): Promise<void> {
|
|
258
|
+
await this.request(
|
|
259
|
+
{
|
|
260
|
+
service: "Subtasks",
|
|
261
|
+
operation: "CompleteSubtask",
|
|
262
|
+
resourceType: "subtask",
|
|
263
|
+
isMutation: true,
|
|
264
|
+
resourceId: subtaskId,
|
|
265
|
+
},
|
|
266
|
+
() =>
|
|
267
|
+
this.client.POST("/subtasks/{subtaskId}/completion.json", {
|
|
268
|
+
params: {
|
|
269
|
+
path: { subtaskId },
|
|
270
|
+
},
|
|
271
|
+
})
|
|
272
|
+
);
|
|
273
|
+
}
|
|
274
|
+
|
|
275
|
+
/**
|
|
276
|
+
* Mark a subtask as not completed
|
|
277
|
+
* @param subtaskId - The subtask ID
|
|
278
|
+
* @returns void
|
|
279
|
+
* @throws {BasecampError} If the request fails
|
|
280
|
+
*
|
|
281
|
+
* @example
|
|
282
|
+
* ```ts
|
|
283
|
+
* await client.subtasks.uncomplete(123);
|
|
284
|
+
* ```
|
|
285
|
+
*/
|
|
286
|
+
async uncomplete(subtaskId: number): Promise<void> {
|
|
287
|
+
await this.request(
|
|
288
|
+
{
|
|
289
|
+
service: "Subtasks",
|
|
290
|
+
operation: "UncompleteSubtask",
|
|
291
|
+
resourceType: "subtask",
|
|
292
|
+
isMutation: true,
|
|
293
|
+
resourceId: subtaskId,
|
|
294
|
+
},
|
|
295
|
+
() =>
|
|
296
|
+
this.client.DELETE("/subtasks/{subtaskId}/completion.json", {
|
|
297
|
+
params: {
|
|
298
|
+
path: { subtaskId },
|
|
299
|
+
},
|
|
300
|
+
})
|
|
301
|
+
);
|
|
302
|
+
}
|
|
303
|
+
|
|
304
|
+
/**
|
|
305
|
+
* Move a subtask to a new position among its siblings
|
|
306
|
+
* @param subtaskId - The subtask ID
|
|
307
|
+
* @param req - Subtask request parameters
|
|
308
|
+
* @returns void
|
|
309
|
+
* @throws {BasecampError} If the request fails
|
|
310
|
+
*
|
|
311
|
+
* @example
|
|
312
|
+
* ```ts
|
|
313
|
+
* await client.subtasks.reposition(123, { position: 1 });
|
|
314
|
+
* ```
|
|
315
|
+
*/
|
|
316
|
+
async reposition(subtaskId: number, req: RepositionSubtaskRequest): Promise<void> {
|
|
317
|
+
await this.request(
|
|
318
|
+
{
|
|
319
|
+
service: "Subtasks",
|
|
320
|
+
operation: "RepositionSubtask",
|
|
321
|
+
resourceType: "subtask",
|
|
322
|
+
isMutation: true,
|
|
323
|
+
resourceId: subtaskId,
|
|
324
|
+
},
|
|
325
|
+
() =>
|
|
326
|
+
this.client.PUT("/subtasks/{subtaskId}/position.json", {
|
|
327
|
+
params: {
|
|
328
|
+
path: { subtaskId },
|
|
329
|
+
},
|
|
330
|
+
body: {
|
|
331
|
+
position: req.position,
|
|
332
|
+
},
|
|
333
|
+
})
|
|
334
|
+
);
|
|
335
|
+
}
|
|
336
|
+
}
|
|
@@ -7,19 +7,60 @@ import { BaseService } from "../../services/base.js";
|
|
|
7
7
|
import type { components } from "../schema.js";
|
|
8
8
|
import { ListResult } from "../../pagination.js";
|
|
9
9
|
import type { PaginationOptions } from "../../pagination.js";
|
|
10
|
+
/** CardTable entity from the Basecamp API. */
|
|
11
|
+
export type CardTable = components["schemas"]["CardTable"];
|
|
12
|
+
/** Todolist entity from the Basecamp API. */
|
|
13
|
+
export type Todolist = components["schemas"]["Todolist"];
|
|
10
14
|
/** Template entity from the Basecamp API. */
|
|
11
15
|
export type Template = components["schemas"]["Template"];
|
|
16
|
+
/**
|
|
17
|
+
* Request parameters for createTemplatification.
|
|
18
|
+
*/
|
|
19
|
+
export interface CreateTemplatificationTemplateRequest {
|
|
20
|
+
/** What to call the template. Defaults to the source recording's own title. */
|
|
21
|
+
templateName?: string;
|
|
22
|
+
/** Carry the comments across. */
|
|
23
|
+
copyComments?: boolean;
|
|
24
|
+
/** Carry assignees and the people involved across, adding them to the library
|
|
25
|
+
if they are not already there. */
|
|
26
|
+
copyAssignments?: boolean;
|
|
27
|
+
/** Gather the cards into Triage. Card tables only, and ignored otherwise. */
|
|
28
|
+
moveCardsToTriage?: boolean;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Request parameters for createLibraryCardTable.
|
|
32
|
+
*/
|
|
33
|
+
export interface CreateLibraryCardTableTemplateRequest {
|
|
34
|
+
/** The template's name. Write-only: the response carries it as `title`. */
|
|
35
|
+
name: string;
|
|
36
|
+
}
|
|
12
37
|
/**
|
|
13
38
|
* Request parameters for createLibraryCopy.
|
|
14
39
|
*/
|
|
15
40
|
export interface CreateLibraryCopyTemplateRequest {
|
|
16
|
-
/**
|
|
41
|
+
/** The to-do list or card table in the library to copy. */
|
|
17
42
|
templateRecordingId: number;
|
|
18
|
-
/**
|
|
19
|
-
|
|
43
|
+
/** The destination project. Basecamp resolves the container from the
|
|
44
|
+
template's kind, so a caller naming a project needs to know nothing about
|
|
45
|
+
docks or to-do sets. Supply this or destination_parent_id; if both are
|
|
46
|
+
sent, destination_parent_id wins. */
|
|
47
|
+
destinationProjectId?: number;
|
|
48
|
+
/** The container to copy into, for a caller that already holds one: the
|
|
49
|
+
project's to-do set for a to-do list template, or its dock for a card
|
|
50
|
+
table. A caller who may not edit it gets 404, not 403. */
|
|
51
|
+
destinationParentId?: number;
|
|
20
52
|
/** Confirm granting destination-project access to people referenced by the template. */
|
|
21
53
|
addingPeopleConfirmed?: boolean;
|
|
22
54
|
}
|
|
55
|
+
/**
|
|
56
|
+
* Request parameters for createLibraryTodolist.
|
|
57
|
+
*/
|
|
58
|
+
export interface CreateLibraryTodolistTemplateRequest {
|
|
59
|
+
/** What to call the template. */
|
|
60
|
+
name: string;
|
|
61
|
+
/** Rich text describing the template. */
|
|
62
|
+
description?: string;
|
|
63
|
+
}
|
|
23
64
|
/**
|
|
24
65
|
* Options for list.
|
|
25
66
|
*/
|
|
@@ -59,25 +100,65 @@ export interface CreateProjectTemplateRequest {
|
|
|
59
100
|
*/
|
|
60
101
|
export declare class TemplatesService extends BaseService {
|
|
61
102
|
/**
|
|
62
|
-
*
|
|
63
|
-
* @
|
|
103
|
+
* Templatify a to-do list or card table
|
|
104
|
+
* @param bucketId - The bucket ID
|
|
105
|
+
* @param recordingId - The to-do list or card table to templatify. Anything else is a 403.
|
|
106
|
+
* @param req - Templatification creation parameters
|
|
107
|
+
* @returns The templatification
|
|
108
|
+
* @throws {BasecampError} If required fields are missing or invalid
|
|
109
|
+
*
|
|
110
|
+
* @example
|
|
111
|
+
* ```ts
|
|
112
|
+
* const result = await client.templates.createTemplatification(123, 123, { });
|
|
113
|
+
* ```
|
|
114
|
+
*/
|
|
115
|
+
createTemplatification(bucketId: number, recordingId: number, req: CreateTemplatificationTemplateRequest): Promise<components["schemas"]["CreateTemplatificationResponseContent"]>;
|
|
116
|
+
/**
|
|
117
|
+
* Get a templatification
|
|
118
|
+
* @param bucketId - The bucket ID
|
|
119
|
+
* @param recordingId - The recording ID
|
|
120
|
+
* @param templatificationId - The templatification ID
|
|
121
|
+
* @returns The templatification
|
|
64
122
|
* @throws {BasecampError} If the resource is not found
|
|
65
123
|
*
|
|
66
124
|
* @example
|
|
67
125
|
* ```ts
|
|
68
|
-
* const result = await client.templates.
|
|
126
|
+
* const result = await client.templates.getTemplatification(123, 123, 123);
|
|
69
127
|
* ```
|
|
70
128
|
*/
|
|
71
|
-
|
|
129
|
+
getTemplatification(bucketId: number, recordingId: number, templatificationId: number): Promise<components["schemas"]["GetTemplatificationResponseContent"]>;
|
|
72
130
|
/**
|
|
73
|
-
*
|
|
131
|
+
* Get the account's card table templates
|
|
132
|
+
* @returns The template_library_card_table
|
|
133
|
+
* @throws {BasecampError} If the resource is not found
|
|
134
|
+
*
|
|
135
|
+
* @example
|
|
136
|
+
* ```ts
|
|
137
|
+
* const result = await client.templates.getLibraryCardTables();
|
|
138
|
+
* ```
|
|
139
|
+
*/
|
|
140
|
+
getLibraryCardTables(): Promise<components["schemas"]["GetTemplateLibraryCardTablesResponseContent"]>;
|
|
141
|
+
/**
|
|
142
|
+
* Create a card table template with the default columns
|
|
143
|
+
* @param req - Template_library_card_table creation parameters
|
|
144
|
+
* @returns The CardTable
|
|
145
|
+
* @throws {BasecampError} If required fields are missing or invalid
|
|
146
|
+
*
|
|
147
|
+
* @example
|
|
148
|
+
* ```ts
|
|
149
|
+
* const result = await client.templates.createLibraryCardTable({ name: "My example" });
|
|
150
|
+
* ```
|
|
151
|
+
*/
|
|
152
|
+
createLibraryCardTable(req: CreateLibraryCardTableTemplateRequest): Promise<CardTable>;
|
|
153
|
+
/**
|
|
154
|
+
* Start copying a to-do list or card table template into a project
|
|
74
155
|
* @param req - Template_library_copy creation parameters
|
|
75
156
|
* @returns The template_library_copy
|
|
76
157
|
* @throws {BasecampError} If required fields are missing or invalid
|
|
77
158
|
*
|
|
78
159
|
* @example
|
|
79
160
|
* ```ts
|
|
80
|
-
* const result = await client.templates.createLibraryCopy({ templateRecordingId: 1
|
|
161
|
+
* const result = await client.templates.createLibraryCopy({ templateRecordingId: 1 });
|
|
81
162
|
* ```
|
|
82
163
|
*/
|
|
83
164
|
createLibraryCopy(req: CreateLibraryCopyTemplateRequest): Promise<components["schemas"]["CreateTemplateLibraryCopyResponseContent"]>;
|
|
@@ -93,10 +174,33 @@ export declare class TemplatesService extends BaseService {
|
|
|
93
174
|
* ```
|
|
94
175
|
*/
|
|
95
176
|
getLibraryCopy(copyId: number): Promise<components["schemas"]["GetTemplateLibraryCopyResponseContent"]>;
|
|
177
|
+
/**
|
|
178
|
+
* Get the account's to-do list templates
|
|
179
|
+
* @returns The template_library_todolist
|
|
180
|
+
* @throws {BasecampError} If the resource is not found
|
|
181
|
+
*
|
|
182
|
+
* @example
|
|
183
|
+
* ```ts
|
|
184
|
+
* const result = await client.templates.getLibraryTodolists();
|
|
185
|
+
* ```
|
|
186
|
+
*/
|
|
187
|
+
getLibraryTodolists(): Promise<components["schemas"]["GetTemplateLibraryTodolistsResponseContent"]>;
|
|
188
|
+
/**
|
|
189
|
+
* Create an empty to-do list template
|
|
190
|
+
* @param req - Template_library_todolist creation parameters
|
|
191
|
+
* @returns The Todolist
|
|
192
|
+
* @throws {BasecampError} If required fields are missing or invalid
|
|
193
|
+
*
|
|
194
|
+
* @example
|
|
195
|
+
* ```ts
|
|
196
|
+
* const result = await client.templates.createLibraryTodolist({ name: "My example" });
|
|
197
|
+
* ```
|
|
198
|
+
*/
|
|
199
|
+
createLibraryTodolist(req: CreateLibraryTodolistTemplateRequest): Promise<Todolist>;
|
|
96
200
|
/**
|
|
97
201
|
* List all templates visible to the current user
|
|
98
202
|
* @param options - Optional query parameters
|
|
99
|
-
* @returns
|
|
203
|
+
* @returns Every Template across all pages, with .meta.totalCount
|
|
100
204
|
*
|
|
101
205
|
* @example
|
|
102
206
|
* ```ts
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"templates.d.ts","sourceRoot":"","sources":["../../../src/generated/services/templates.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAO7D,6CAA6C;AAC7C,MAAM,MAAM,QAAQ,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,UAAU,CAAC,CAAC;AAEzD;;GAEG;AACH,MAAM,WAAW,gCAAgC;IAC/C,
|
|
1
|
+
{"version":3,"file":"templates.d.ts","sourceRoot":"","sources":["../../../src/generated/services/templates.ts"],"names":[],"mappings":"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"}
|