@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
|
@@ -13,33 +13,122 @@ import { Errors } from "../../errors.js";
|
|
|
13
13
|
*/
|
|
14
14
|
export class TemplatesService extends BaseService {
|
|
15
15
|
/**
|
|
16
|
-
*
|
|
17
|
-
* @
|
|
16
|
+
* Templatify a to-do list or card table
|
|
17
|
+
* @param bucketId - The bucket ID
|
|
18
|
+
* @param recordingId - The to-do list or card table to templatify. Anything else is a 403.
|
|
19
|
+
* @param req - Templatification creation parameters
|
|
20
|
+
* @returns The templatification
|
|
21
|
+
* @throws {BasecampError} If required fields are missing or invalid
|
|
22
|
+
*
|
|
23
|
+
* @example
|
|
24
|
+
* ```ts
|
|
25
|
+
* const result = await client.templates.createTemplatification(123, 123, { });
|
|
26
|
+
* ```
|
|
27
|
+
*/
|
|
28
|
+
async createTemplatification(bucketId, recordingId, req) {
|
|
29
|
+
const response = await this.request({
|
|
30
|
+
service: "Templates",
|
|
31
|
+
operation: "CreateTemplatification",
|
|
32
|
+
resourceType: "templatification",
|
|
33
|
+
isMutation: true,
|
|
34
|
+
projectId: bucketId,
|
|
35
|
+
resourceId: recordingId,
|
|
36
|
+
}, () => this.client.POST("/buckets/{bucketId}/recordings/{recordingId}/templatifications.json", {
|
|
37
|
+
params: {
|
|
38
|
+
path: { bucketId, recordingId },
|
|
39
|
+
},
|
|
40
|
+
body: {
|
|
41
|
+
template_name: req.templateName,
|
|
42
|
+
copy_comments: req.copyComments,
|
|
43
|
+
copy_assignments: req.copyAssignments,
|
|
44
|
+
move_cards_to_triage: req.moveCardsToTriage,
|
|
45
|
+
},
|
|
46
|
+
}));
|
|
47
|
+
return response;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Get a templatification
|
|
51
|
+
* @param bucketId - The bucket ID
|
|
52
|
+
* @param recordingId - The recording ID
|
|
53
|
+
* @param templatificationId - The templatification ID
|
|
54
|
+
* @returns The templatification
|
|
55
|
+
* @throws {BasecampError} If the resource is not found
|
|
56
|
+
*
|
|
57
|
+
* @example
|
|
58
|
+
* ```ts
|
|
59
|
+
* const result = await client.templates.getTemplatification(123, 123, 123);
|
|
60
|
+
* ```
|
|
61
|
+
*/
|
|
62
|
+
async getTemplatification(bucketId, recordingId, templatificationId) {
|
|
63
|
+
const response = await this.request({
|
|
64
|
+
service: "Templates",
|
|
65
|
+
operation: "GetTemplatification",
|
|
66
|
+
resourceType: "templatification",
|
|
67
|
+
isMutation: false,
|
|
68
|
+
projectId: bucketId,
|
|
69
|
+
resourceId: templatificationId,
|
|
70
|
+
}, () => this.client.GET("/buckets/{bucketId}/recordings/{recordingId}/templatifications/{templatificationId}", {
|
|
71
|
+
params: {
|
|
72
|
+
path: { bucketId, recordingId, templatificationId },
|
|
73
|
+
},
|
|
74
|
+
}));
|
|
75
|
+
return response;
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Get the account's card table templates
|
|
79
|
+
* @returns The template_library_card_table
|
|
18
80
|
* @throws {BasecampError} If the resource is not found
|
|
19
81
|
*
|
|
20
82
|
* @example
|
|
21
83
|
* ```ts
|
|
22
|
-
* const result = await client.templates.
|
|
84
|
+
* const result = await client.templates.getLibraryCardTables();
|
|
23
85
|
* ```
|
|
24
86
|
*/
|
|
25
|
-
async
|
|
87
|
+
async getLibraryCardTables() {
|
|
26
88
|
const response = await this.request({
|
|
27
89
|
service: "Templates",
|
|
28
|
-
operation: "
|
|
29
|
-
resourceType: "
|
|
90
|
+
operation: "GetTemplateLibraryCardTables",
|
|
91
|
+
resourceType: "template_library_card_table",
|
|
30
92
|
isMutation: false,
|
|
31
|
-
}, () => this.client.GET("/template_library.json", {}));
|
|
93
|
+
}, () => this.client.GET("/template_library/card_tables.json", {}));
|
|
32
94
|
return response;
|
|
33
95
|
}
|
|
34
96
|
/**
|
|
35
|
-
*
|
|
97
|
+
* Create a card table template with the default columns
|
|
98
|
+
* @param req - Template_library_card_table creation parameters
|
|
99
|
+
* @returns The CardTable
|
|
100
|
+
* @throws {BasecampError} If required fields are missing or invalid
|
|
101
|
+
*
|
|
102
|
+
* @example
|
|
103
|
+
* ```ts
|
|
104
|
+
* const result = await client.templates.createLibraryCardTable({ name: "My example" });
|
|
105
|
+
* ```
|
|
106
|
+
*/
|
|
107
|
+
async createLibraryCardTable(req) {
|
|
108
|
+
if (!req.name) {
|
|
109
|
+
throw Errors.validation("Name is required");
|
|
110
|
+
}
|
|
111
|
+
const response = await this.request({
|
|
112
|
+
service: "Templates",
|
|
113
|
+
operation: "CreateTemplateLibraryCardTable",
|
|
114
|
+
resourceType: "template_library_card_table",
|
|
115
|
+
isMutation: true,
|
|
116
|
+
}, () => this.client.POST("/template_library/card_tables.json", {
|
|
117
|
+
body: {
|
|
118
|
+
name: req.name,
|
|
119
|
+
},
|
|
120
|
+
}));
|
|
121
|
+
return response;
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* Start copying a to-do list or card table template into a project
|
|
36
125
|
* @param req - Template_library_copy creation parameters
|
|
37
126
|
* @returns The template_library_copy
|
|
38
127
|
* @throws {BasecampError} If required fields are missing or invalid
|
|
39
128
|
*
|
|
40
129
|
* @example
|
|
41
130
|
* ```ts
|
|
42
|
-
* const result = await client.templates.createLibraryCopy({ templateRecordingId: 1
|
|
131
|
+
* const result = await client.templates.createLibraryCopy({ templateRecordingId: 1 });
|
|
43
132
|
* ```
|
|
44
133
|
*/
|
|
45
134
|
async createLibraryCopy(req) {
|
|
@@ -51,6 +140,7 @@ export class TemplatesService extends BaseService {
|
|
|
51
140
|
}, () => this.client.POST("/template_library/copies.json", {
|
|
52
141
|
body: {
|
|
53
142
|
template_recording_id: req.templateRecordingId,
|
|
143
|
+
destination_project_id: req.destinationProjectId,
|
|
54
144
|
destination_parent_id: req.destinationParentId,
|
|
55
145
|
adding_people_confirmed: req.addingPeopleConfirmed,
|
|
56
146
|
},
|
|
@@ -82,10 +172,57 @@ export class TemplatesService extends BaseService {
|
|
|
82
172
|
}));
|
|
83
173
|
return response;
|
|
84
174
|
}
|
|
175
|
+
/**
|
|
176
|
+
* Get the account's to-do list templates
|
|
177
|
+
* @returns The template_library_todolist
|
|
178
|
+
* @throws {BasecampError} If the resource is not found
|
|
179
|
+
*
|
|
180
|
+
* @example
|
|
181
|
+
* ```ts
|
|
182
|
+
* const result = await client.templates.getLibraryTodolists();
|
|
183
|
+
* ```
|
|
184
|
+
*/
|
|
185
|
+
async getLibraryTodolists() {
|
|
186
|
+
const response = await this.request({
|
|
187
|
+
service: "Templates",
|
|
188
|
+
operation: "GetTemplateLibraryTodolists",
|
|
189
|
+
resourceType: "template_library_todolist",
|
|
190
|
+
isMutation: false,
|
|
191
|
+
}, () => this.client.GET("/template_library/todolists.json", {}));
|
|
192
|
+
return response;
|
|
193
|
+
}
|
|
194
|
+
/**
|
|
195
|
+
* Create an empty to-do list template
|
|
196
|
+
* @param req - Template_library_todolist creation parameters
|
|
197
|
+
* @returns The Todolist
|
|
198
|
+
* @throws {BasecampError} If required fields are missing or invalid
|
|
199
|
+
*
|
|
200
|
+
* @example
|
|
201
|
+
* ```ts
|
|
202
|
+
* const result = await client.templates.createLibraryTodolist({ name: "My example" });
|
|
203
|
+
* ```
|
|
204
|
+
*/
|
|
205
|
+
async createLibraryTodolist(req) {
|
|
206
|
+
if (!req.name) {
|
|
207
|
+
throw Errors.validation("Name is required");
|
|
208
|
+
}
|
|
209
|
+
const response = await this.request({
|
|
210
|
+
service: "Templates",
|
|
211
|
+
operation: "CreateTemplateLibraryTodolist",
|
|
212
|
+
resourceType: "template_library_todolist",
|
|
213
|
+
isMutation: true,
|
|
214
|
+
}, () => this.client.POST("/template_library/todolists.json", {
|
|
215
|
+
body: {
|
|
216
|
+
name: req.name,
|
|
217
|
+
description: req.description,
|
|
218
|
+
},
|
|
219
|
+
}));
|
|
220
|
+
return response;
|
|
221
|
+
}
|
|
85
222
|
/**
|
|
86
223
|
* List all templates visible to the current user
|
|
87
224
|
* @param options - Optional query parameters
|
|
88
|
-
* @returns
|
|
225
|
+
* @returns Every Template across all pages, with .meta.totalCount
|
|
89
226
|
*
|
|
90
227
|
* @example
|
|
91
228
|
* ```ts
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"templates.js","sourceRoot":"","sources":["../../../src/generated/services/templates.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAIrD,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"templates.js","sourceRoot":"","sources":["../../../src/generated/services/templates.ts"],"names":[],"mappings":"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"}
|
|
@@ -14,21 +14,65 @@ import { Errors } from "../../errors.js";
|
|
|
14
14
|
// Types
|
|
15
15
|
// =============================================================================
|
|
16
16
|
|
|
17
|
+
/** CardTable entity from the Basecamp API. */
|
|
18
|
+
export type CardTable = components["schemas"]["CardTable"];
|
|
19
|
+
/** Todolist entity from the Basecamp API. */
|
|
20
|
+
export type Todolist = components["schemas"]["Todolist"];
|
|
17
21
|
/** Template entity from the Basecamp API. */
|
|
18
22
|
export type Template = components["schemas"]["Template"];
|
|
19
23
|
|
|
24
|
+
/**
|
|
25
|
+
* Request parameters for createTemplatification.
|
|
26
|
+
*/
|
|
27
|
+
export interface CreateTemplatificationTemplateRequest {
|
|
28
|
+
/** What to call the template. Defaults to the source recording's own title. */
|
|
29
|
+
templateName?: string;
|
|
30
|
+
/** Carry the comments across. */
|
|
31
|
+
copyComments?: boolean;
|
|
32
|
+
/** Carry assignees and the people involved across, adding them to the library
|
|
33
|
+
if they are not already there. */
|
|
34
|
+
copyAssignments?: boolean;
|
|
35
|
+
/** Gather the cards into Triage. Card tables only, and ignored otherwise. */
|
|
36
|
+
moveCardsToTriage?: boolean;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
/**
|
|
40
|
+
* Request parameters for createLibraryCardTable.
|
|
41
|
+
*/
|
|
42
|
+
export interface CreateLibraryCardTableTemplateRequest {
|
|
43
|
+
/** The template's name. Write-only: the response carries it as `title`. */
|
|
44
|
+
name: string;
|
|
45
|
+
}
|
|
46
|
+
|
|
20
47
|
/**
|
|
21
48
|
* Request parameters for createLibraryCopy.
|
|
22
49
|
*/
|
|
23
50
|
export interface CreateLibraryCopyTemplateRequest {
|
|
24
|
-
/**
|
|
51
|
+
/** The to-do list or card table in the library to copy. */
|
|
25
52
|
templateRecordingId: number;
|
|
26
|
-
/**
|
|
27
|
-
|
|
53
|
+
/** The destination project. Basecamp resolves the container from the
|
|
54
|
+
template's kind, so a caller naming a project needs to know nothing about
|
|
55
|
+
docks or to-do sets. Supply this or destination_parent_id; if both are
|
|
56
|
+
sent, destination_parent_id wins. */
|
|
57
|
+
destinationProjectId?: number;
|
|
58
|
+
/** The container to copy into, for a caller that already holds one: the
|
|
59
|
+
project's to-do set for a to-do list template, or its dock for a card
|
|
60
|
+
table. A caller who may not edit it gets 404, not 403. */
|
|
61
|
+
destinationParentId?: number;
|
|
28
62
|
/** Confirm granting destination-project access to people referenced by the template. */
|
|
29
63
|
addingPeopleConfirmed?: boolean;
|
|
30
64
|
}
|
|
31
65
|
|
|
66
|
+
/**
|
|
67
|
+
* Request parameters for createLibraryTodolist.
|
|
68
|
+
*/
|
|
69
|
+
export interface CreateLibraryTodolistTemplateRequest {
|
|
70
|
+
/** What to call the template. */
|
|
71
|
+
name: string;
|
|
72
|
+
/** Rich text describing the template. */
|
|
73
|
+
description?: string;
|
|
74
|
+
}
|
|
75
|
+
|
|
32
76
|
/**
|
|
33
77
|
* Options for list.
|
|
34
78
|
*/
|
|
@@ -78,39 +122,143 @@ export interface CreateProjectTemplateRequest {
|
|
|
78
122
|
export class TemplatesService extends BaseService {
|
|
79
123
|
|
|
80
124
|
/**
|
|
81
|
-
*
|
|
82
|
-
* @
|
|
125
|
+
* Templatify a to-do list or card table
|
|
126
|
+
* @param bucketId - The bucket ID
|
|
127
|
+
* @param recordingId - The to-do list or card table to templatify. Anything else is a 403.
|
|
128
|
+
* @param req - Templatification creation parameters
|
|
129
|
+
* @returns The templatification
|
|
130
|
+
* @throws {BasecampError} If required fields are missing or invalid
|
|
131
|
+
*
|
|
132
|
+
* @example
|
|
133
|
+
* ```ts
|
|
134
|
+
* const result = await client.templates.createTemplatification(123, 123, { });
|
|
135
|
+
* ```
|
|
136
|
+
*/
|
|
137
|
+
async createTemplatification(bucketId: number, recordingId: number, req: CreateTemplatificationTemplateRequest): Promise<components["schemas"]["CreateTemplatificationResponseContent"]> {
|
|
138
|
+
const response = await this.request(
|
|
139
|
+
{
|
|
140
|
+
service: "Templates",
|
|
141
|
+
operation: "CreateTemplatification",
|
|
142
|
+
resourceType: "templatification",
|
|
143
|
+
isMutation: true,
|
|
144
|
+
projectId: bucketId,
|
|
145
|
+
resourceId: recordingId,
|
|
146
|
+
},
|
|
147
|
+
() =>
|
|
148
|
+
this.client.POST("/buckets/{bucketId}/recordings/{recordingId}/templatifications.json", {
|
|
149
|
+
params: {
|
|
150
|
+
path: { bucketId, recordingId },
|
|
151
|
+
},
|
|
152
|
+
body: {
|
|
153
|
+
template_name: req.templateName,
|
|
154
|
+
copy_comments: req.copyComments,
|
|
155
|
+
copy_assignments: req.copyAssignments,
|
|
156
|
+
move_cards_to_triage: req.moveCardsToTriage,
|
|
157
|
+
},
|
|
158
|
+
})
|
|
159
|
+
);
|
|
160
|
+
return response;
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
/**
|
|
164
|
+
* Get a templatification
|
|
165
|
+
* @param bucketId - The bucket ID
|
|
166
|
+
* @param recordingId - The recording ID
|
|
167
|
+
* @param templatificationId - The templatification ID
|
|
168
|
+
* @returns The templatification
|
|
83
169
|
* @throws {BasecampError} If the resource is not found
|
|
84
170
|
*
|
|
85
171
|
* @example
|
|
86
172
|
* ```ts
|
|
87
|
-
* const result = await client.templates.
|
|
173
|
+
* const result = await client.templates.getTemplatification(123, 123, 123);
|
|
88
174
|
* ```
|
|
89
175
|
*/
|
|
90
|
-
async
|
|
176
|
+
async getTemplatification(bucketId: number, recordingId: number, templatificationId: number): Promise<components["schemas"]["GetTemplatificationResponseContent"]> {
|
|
91
177
|
const response = await this.request(
|
|
92
178
|
{
|
|
93
179
|
service: "Templates",
|
|
94
|
-
operation: "
|
|
95
|
-
resourceType: "
|
|
180
|
+
operation: "GetTemplatification",
|
|
181
|
+
resourceType: "templatification",
|
|
96
182
|
isMutation: false,
|
|
183
|
+
projectId: bucketId,
|
|
184
|
+
resourceId: templatificationId,
|
|
185
|
+
},
|
|
186
|
+
() =>
|
|
187
|
+
this.client.GET("/buckets/{bucketId}/recordings/{recordingId}/templatifications/{templatificationId}", {
|
|
188
|
+
params: {
|
|
189
|
+
path: { bucketId, recordingId, templatificationId },
|
|
190
|
+
},
|
|
191
|
+
})
|
|
192
|
+
);
|
|
193
|
+
return response;
|
|
194
|
+
}
|
|
195
|
+
|
|
196
|
+
/**
|
|
197
|
+
* Get the account's card table templates
|
|
198
|
+
* @returns The template_library_card_table
|
|
199
|
+
* @throws {BasecampError} If the resource is not found
|
|
200
|
+
*
|
|
201
|
+
* @example
|
|
202
|
+
* ```ts
|
|
203
|
+
* const result = await client.templates.getLibraryCardTables();
|
|
204
|
+
* ```
|
|
205
|
+
*/
|
|
206
|
+
async getLibraryCardTables(): Promise<components["schemas"]["GetTemplateLibraryCardTablesResponseContent"]> {
|
|
207
|
+
const response = await this.request(
|
|
208
|
+
{
|
|
209
|
+
service: "Templates",
|
|
210
|
+
operation: "GetTemplateLibraryCardTables",
|
|
211
|
+
resourceType: "template_library_card_table",
|
|
212
|
+
isMutation: false,
|
|
213
|
+
},
|
|
214
|
+
() =>
|
|
215
|
+
this.client.GET("/template_library/card_tables.json", {
|
|
216
|
+
})
|
|
217
|
+
);
|
|
218
|
+
return response;
|
|
219
|
+
}
|
|
220
|
+
|
|
221
|
+
/**
|
|
222
|
+
* Create a card table template with the default columns
|
|
223
|
+
* @param req - Template_library_card_table creation parameters
|
|
224
|
+
* @returns The CardTable
|
|
225
|
+
* @throws {BasecampError} If required fields are missing or invalid
|
|
226
|
+
*
|
|
227
|
+
* @example
|
|
228
|
+
* ```ts
|
|
229
|
+
* const result = await client.templates.createLibraryCardTable({ name: "My example" });
|
|
230
|
+
* ```
|
|
231
|
+
*/
|
|
232
|
+
async createLibraryCardTable(req: CreateLibraryCardTableTemplateRequest): Promise<CardTable> {
|
|
233
|
+
if (!req.name) {
|
|
234
|
+
throw Errors.validation("Name is required");
|
|
235
|
+
}
|
|
236
|
+
const response = await this.request(
|
|
237
|
+
{
|
|
238
|
+
service: "Templates",
|
|
239
|
+
operation: "CreateTemplateLibraryCardTable",
|
|
240
|
+
resourceType: "template_library_card_table",
|
|
241
|
+
isMutation: true,
|
|
97
242
|
},
|
|
98
243
|
() =>
|
|
99
|
-
this.client.
|
|
244
|
+
this.client.POST("/template_library/card_tables.json", {
|
|
245
|
+
body: {
|
|
246
|
+
name: req.name,
|
|
247
|
+
},
|
|
100
248
|
})
|
|
101
249
|
);
|
|
102
250
|
return response;
|
|
103
251
|
}
|
|
104
252
|
|
|
105
253
|
/**
|
|
106
|
-
* Start copying a to-do list template into a project
|
|
254
|
+
* Start copying a to-do list or card table template into a project
|
|
107
255
|
* @param req - Template_library_copy creation parameters
|
|
108
256
|
* @returns The template_library_copy
|
|
109
257
|
* @throws {BasecampError} If required fields are missing or invalid
|
|
110
258
|
*
|
|
111
259
|
* @example
|
|
112
260
|
* ```ts
|
|
113
|
-
* const result = await client.templates.createLibraryCopy({ templateRecordingId: 1
|
|
261
|
+
* const result = await client.templates.createLibraryCopy({ templateRecordingId: 1 });
|
|
114
262
|
* ```
|
|
115
263
|
*/
|
|
116
264
|
async createLibraryCopy(req: CreateLibraryCopyTemplateRequest): Promise<components["schemas"]["CreateTemplateLibraryCopyResponseContent"]> {
|
|
@@ -125,6 +273,7 @@ export class TemplatesService extends BaseService {
|
|
|
125
273
|
this.client.POST("/template_library/copies.json", {
|
|
126
274
|
body: {
|
|
127
275
|
template_recording_id: req.templateRecordingId,
|
|
276
|
+
destination_project_id: req.destinationProjectId,
|
|
128
277
|
destination_parent_id: req.destinationParentId,
|
|
129
278
|
adding_people_confirmed: req.addingPeopleConfirmed,
|
|
130
279
|
},
|
|
@@ -163,10 +312,68 @@ export class TemplatesService extends BaseService {
|
|
|
163
312
|
return response;
|
|
164
313
|
}
|
|
165
314
|
|
|
315
|
+
/**
|
|
316
|
+
* Get the account's to-do list templates
|
|
317
|
+
* @returns The template_library_todolist
|
|
318
|
+
* @throws {BasecampError} If the resource is not found
|
|
319
|
+
*
|
|
320
|
+
* @example
|
|
321
|
+
* ```ts
|
|
322
|
+
* const result = await client.templates.getLibraryTodolists();
|
|
323
|
+
* ```
|
|
324
|
+
*/
|
|
325
|
+
async getLibraryTodolists(): Promise<components["schemas"]["GetTemplateLibraryTodolistsResponseContent"]> {
|
|
326
|
+
const response = await this.request(
|
|
327
|
+
{
|
|
328
|
+
service: "Templates",
|
|
329
|
+
operation: "GetTemplateLibraryTodolists",
|
|
330
|
+
resourceType: "template_library_todolist",
|
|
331
|
+
isMutation: false,
|
|
332
|
+
},
|
|
333
|
+
() =>
|
|
334
|
+
this.client.GET("/template_library/todolists.json", {
|
|
335
|
+
})
|
|
336
|
+
);
|
|
337
|
+
return response;
|
|
338
|
+
}
|
|
339
|
+
|
|
340
|
+
/**
|
|
341
|
+
* Create an empty to-do list template
|
|
342
|
+
* @param req - Template_library_todolist creation parameters
|
|
343
|
+
* @returns The Todolist
|
|
344
|
+
* @throws {BasecampError} If required fields are missing or invalid
|
|
345
|
+
*
|
|
346
|
+
* @example
|
|
347
|
+
* ```ts
|
|
348
|
+
* const result = await client.templates.createLibraryTodolist({ name: "My example" });
|
|
349
|
+
* ```
|
|
350
|
+
*/
|
|
351
|
+
async createLibraryTodolist(req: CreateLibraryTodolistTemplateRequest): Promise<Todolist> {
|
|
352
|
+
if (!req.name) {
|
|
353
|
+
throw Errors.validation("Name is required");
|
|
354
|
+
}
|
|
355
|
+
const response = await this.request(
|
|
356
|
+
{
|
|
357
|
+
service: "Templates",
|
|
358
|
+
operation: "CreateTemplateLibraryTodolist",
|
|
359
|
+
resourceType: "template_library_todolist",
|
|
360
|
+
isMutation: true,
|
|
361
|
+
},
|
|
362
|
+
() =>
|
|
363
|
+
this.client.POST("/template_library/todolists.json", {
|
|
364
|
+
body: {
|
|
365
|
+
name: req.name,
|
|
366
|
+
description: req.description,
|
|
367
|
+
},
|
|
368
|
+
})
|
|
369
|
+
);
|
|
370
|
+
return response;
|
|
371
|
+
}
|
|
372
|
+
|
|
166
373
|
/**
|
|
167
374
|
* List all templates visible to the current user
|
|
168
375
|
* @param options - Optional query parameters
|
|
169
|
-
* @returns
|
|
376
|
+
* @returns Every Template across all pages, with .meta.totalCount
|
|
170
377
|
*
|
|
171
378
|
* @example
|
|
172
379
|
* ```ts
|
|
@@ -24,7 +24,7 @@ export declare class TimelineService extends BaseService {
|
|
|
24
24
|
* Get project timeline
|
|
25
25
|
* @param projectId - The project ID
|
|
26
26
|
* @param options - Optional query parameters
|
|
27
|
-
* @returns
|
|
27
|
+
* @returns Every TimelineEvent across all pages, with .meta.totalCount
|
|
28
28
|
*
|
|
29
29
|
* @example
|
|
30
30
|
* ```ts
|
|
@@ -15,7 +15,7 @@ export class TimelineService extends BaseService {
|
|
|
15
15
|
* Get project timeline
|
|
16
16
|
* @param projectId - The project ID
|
|
17
17
|
* @param options - Optional query parameters
|
|
18
|
-
* @returns
|
|
18
|
+
* @returns Every TimelineEvent across all pages, with .meta.totalCount
|
|
19
19
|
*
|
|
20
20
|
* @example
|
|
21
21
|
* ```ts
|
|
@@ -38,7 +38,7 @@ export class TimelineService extends BaseService {
|
|
|
38
38
|
* Get project timeline
|
|
39
39
|
* @param projectId - The project ID
|
|
40
40
|
* @param options - Optional query parameters
|
|
41
|
-
* @returns
|
|
41
|
+
* @returns Every TimelineEvent across all pages, with .meta.totalCount
|
|
42
42
|
*
|
|
43
43
|
* @example
|
|
44
44
|
* ```ts
|
|
@@ -80,7 +80,7 @@ export declare class TimesheetsService extends BaseService {
|
|
|
80
80
|
* Get timesheet for a specific project
|
|
81
81
|
* @param projectId - The project ID
|
|
82
82
|
* @param options - Optional query parameters
|
|
83
|
-
* @returns
|
|
83
|
+
* @returns Every TimesheetEntry across all pages, with .meta.totalCount
|
|
84
84
|
*
|
|
85
85
|
* @example
|
|
86
86
|
* ```ts
|
|
@@ -92,7 +92,7 @@ export declare class TimesheetsService extends BaseService {
|
|
|
92
92
|
* Get timesheet for a specific recording
|
|
93
93
|
* @param recordingId - The recording ID
|
|
94
94
|
* @param options - Optional query parameters
|
|
95
|
-
* @returns
|
|
95
|
+
* @returns Every TimesheetEntry across all pages, with .meta.totalCount
|
|
96
96
|
*
|
|
97
97
|
* @example
|
|
98
98
|
* ```ts
|
|
@@ -150,7 +150,7 @@ export declare class TimesheetsService extends BaseService {
|
|
|
150
150
|
*/
|
|
151
151
|
update(entryId: number, req: UpdateTimesheetRequest): Promise<TimesheetEntry>;
|
|
152
152
|
/**
|
|
153
|
-
* Permanently delete a timesheet entry; answers 403 when the caller may not
|
|
153
|
+
* Permanently delete a timesheet entry, which never appears in the trash and cannot be restored; this is the only way to remove one, since bc3 answers 403 to TrashRecording and ArchiveRecording for every timesheet entry, and it answers 403 when the caller may not remove the entry.
|
|
154
154
|
* @param entryId - The entry ID
|
|
155
155
|
* @returns void
|
|
156
156
|
* @throws {BasecampError} If the request fails
|
|
@@ -16,7 +16,7 @@ export class TimesheetsService extends BaseService {
|
|
|
16
16
|
* Get timesheet for a specific project
|
|
17
17
|
* @param projectId - The project ID
|
|
18
18
|
* @param options - Optional query parameters
|
|
19
|
-
* @returns
|
|
19
|
+
* @returns Every TimesheetEntry across all pages, with .meta.totalCount
|
|
20
20
|
*
|
|
21
21
|
* @example
|
|
22
22
|
* ```ts
|
|
@@ -41,7 +41,7 @@ export class TimesheetsService extends BaseService {
|
|
|
41
41
|
* Get timesheet for a specific recording
|
|
42
42
|
* @param recordingId - The recording ID
|
|
43
43
|
* @param options - Optional query parameters
|
|
44
|
-
* @returns
|
|
44
|
+
* @returns Every TimesheetEntry across all pages, with .meta.totalCount
|
|
45
45
|
*
|
|
46
46
|
* @example
|
|
47
47
|
* ```ts
|
|
@@ -181,7 +181,7 @@ export class TimesheetsService extends BaseService {
|
|
|
181
181
|
return response;
|
|
182
182
|
}
|
|
183
183
|
/**
|
|
184
|
-
* Permanently delete a timesheet entry; answers 403 when the caller may not
|
|
184
|
+
* Permanently delete a timesheet entry, which never appears in the trash and cannot be restored; this is the only way to remove one, since bc3 answers 403 to TrashRecording and ArchiveRecording for every timesheet entry, and it answers 403 when the caller may not remove the entry.
|
|
185
185
|
* @param entryId - The entry ID
|
|
186
186
|
* @returns void
|
|
187
187
|
* @throws {BasecampError} If the request fails
|
|
@@ -99,7 +99,7 @@ export class TimesheetsService extends BaseService {
|
|
|
99
99
|
* Get timesheet for a specific project
|
|
100
100
|
* @param projectId - The project ID
|
|
101
101
|
* @param options - Optional query parameters
|
|
102
|
-
* @returns
|
|
102
|
+
* @returns Every TimesheetEntry across all pages, with .meta.totalCount
|
|
103
103
|
*
|
|
104
104
|
* @example
|
|
105
105
|
* ```ts
|
|
@@ -130,7 +130,7 @@ export class TimesheetsService extends BaseService {
|
|
|
130
130
|
* Get timesheet for a specific recording
|
|
131
131
|
* @param recordingId - The recording ID
|
|
132
132
|
* @param options - Optional query parameters
|
|
133
|
-
* @returns
|
|
133
|
+
* @returns Every TimesheetEntry across all pages, with .meta.totalCount
|
|
134
134
|
*
|
|
135
135
|
* @example
|
|
136
136
|
* ```ts
|
|
@@ -296,7 +296,7 @@ export class TimesheetsService extends BaseService {
|
|
|
296
296
|
}
|
|
297
297
|
|
|
298
298
|
/**
|
|
299
|
-
* Permanently delete a timesheet entry; answers 403 when the caller may not
|
|
299
|
+
* Permanently delete a timesheet entry, which never appears in the trash and cannot be restored; this is the only way to remove one, since bc3 answers 403 to TrashRecording and ArchiveRecording for every timesheet entry, and it answers 403 when the caller may not remove the entry.
|
|
300
300
|
* @param entryId - The entry ID
|
|
301
301
|
* @returns void
|
|
302
302
|
* @throws {BasecampError} If the request fails
|
|
@@ -51,7 +51,7 @@ export declare class TodolistGroupsService extends BaseService {
|
|
|
51
51
|
* List groups in a todolist
|
|
52
52
|
* @param todolistId - The todolist ID
|
|
53
53
|
* @param options - Optional query parameters
|
|
54
|
-
* @returns
|
|
54
|
+
* @returns Every Todolist across all pages, with .meta.totalCount
|
|
55
55
|
*
|
|
56
56
|
* @example
|
|
57
57
|
* ```ts
|
|
@@ -44,7 +44,7 @@ export class TodolistGroupsService extends BaseService {
|
|
|
44
44
|
* List groups in a todolist
|
|
45
45
|
* @param todolistId - The todolist ID
|
|
46
46
|
* @param options - Optional query parameters
|
|
47
|
-
* @returns
|
|
47
|
+
* @returns Every Todolist across all pages, with .meta.totalCount
|
|
48
48
|
*
|
|
49
49
|
* @example
|
|
50
50
|
* ```ts
|
|
@@ -88,7 +88,7 @@ export class TodolistGroupsService extends BaseService {
|
|
|
88
88
|
* List groups in a todolist
|
|
89
89
|
* @param todolistId - The todolist ID
|
|
90
90
|
* @param options - Optional query parameters
|
|
91
|
-
* @returns
|
|
91
|
+
* @returns Every Todolist across all pages, with .meta.totalCount
|
|
92
92
|
*
|
|
93
93
|
* @example
|
|
94
94
|
* ```ts
|