@37signals/basecamp 0.2.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 +600 -0
- package/dist/auth-strategy.d.ts +36 -0
- package/dist/auth-strategy.d.ts.map +1 -0
- package/dist/auth-strategy.js +33 -0
- package/dist/auth-strategy.js.map +1 -0
- package/dist/client.d.ts +224 -0
- package/dist/client.d.ts.map +1 -0
- package/dist/client.js +715 -0
- package/dist/client.js.map +1 -0
- package/dist/errors.d.ts +137 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +269 -0
- package/dist/errors.js.map +1 -0
- package/dist/generated/metadata.json +2281 -0
- package/dist/generated/openapi-stripped.json +21268 -0
- package/dist/generated/path-mapping.d.ts +8 -0
- package/dist/generated/path-mapping.d.ts.map +1 -0
- package/dist/generated/path-mapping.js +192 -0
- package/dist/generated/path-mapping.js.map +1 -0
- package/dist/generated/path-mapping.ts +199 -0
- package/dist/generated/schema.d.ts +14883 -0
- package/dist/generated/services/attachments.d.ts +27 -0
- package/dist/generated/services/attachments.d.ts.map +1 -0
- package/dist/generated/services/attachments.js +49 -0
- package/dist/generated/services/attachments.js.map +1 -0
- package/dist/generated/services/attachments.ts +59 -0
- package/dist/generated/services/boosts.d.ts +114 -0
- package/dist/generated/services/boosts.d.ts.map +1 -0
- package/dist/generated/services/boosts.js +179 -0
- package/dist/generated/services/boosts.js.map +1 -0
- package/dist/generated/services/boosts.ts +250 -0
- package/dist/generated/services/campfires.d.ts +202 -0
- package/dist/generated/services/campfires.d.ts.map +1 -0
- package/dist/generated/services/campfires.js +309 -0
- package/dist/generated/services/campfires.js.map +1 -0
- package/dist/generated/services/campfires.ts +433 -0
- package/dist/generated/services/card-columns.d.ts +163 -0
- package/dist/generated/services/card-columns.d.ts.map +1 -0
- package/dist/generated/services/card-columns.js +264 -0
- package/dist/generated/services/card-columns.js.map +1 -0
- package/dist/generated/services/card-columns.ts +360 -0
- package/dist/generated/services/card-steps.d.ts +105 -0
- package/dist/generated/services/card-steps.d.ts.map +1 -0
- package/dist/generated/services/card-steps.js +148 -0
- package/dist/generated/services/card-steps.js.map +1 -0
- package/dist/generated/services/card-steps.ts +221 -0
- package/dist/generated/services/card-tables.d.ts +27 -0
- package/dist/generated/services/card-tables.d.ts.map +1 -0
- package/dist/generated/services/card-tables.js +40 -0
- package/dist/generated/services/card-tables.js.map +1 -0
- package/dist/generated/services/card-tables.ts +55 -0
- package/dist/generated/services/cards.d.ts +118 -0
- package/dist/generated/services/cards.d.ts.map +1 -0
- package/dist/generated/services/cards.js +166 -0
- package/dist/generated/services/cards.js.map +1 -0
- package/dist/generated/services/cards.ts +247 -0
- package/dist/generated/services/checkins.d.ts +278 -0
- package/dist/generated/services/checkins.d.ts.map +1 -0
- package/dist/generated/services/checkins.js +420 -0
- package/dist/generated/services/checkins.js.map +1 -0
- package/dist/generated/services/checkins.ts +600 -0
- package/dist/generated/services/client-approvals.d.ts +45 -0
- package/dist/generated/services/client-approvals.d.ts.map +1 -0
- package/dist/generated/services/client-approvals.js +58 -0
- package/dist/generated/services/client-approvals.js.map +1 -0
- package/dist/generated/services/client-approvals.ts +89 -0
- package/dist/generated/services/client-correspondences.d.ts +45 -0
- package/dist/generated/services/client-correspondences.d.ts.map +1 -0
- package/dist/generated/services/client-correspondences.js +58 -0
- package/dist/generated/services/client-correspondences.js.map +1 -0
- package/dist/generated/services/client-correspondences.ts +89 -0
- package/dist/generated/services/client-replies.d.ts +47 -0
- package/dist/generated/services/client-replies.d.ts.map +1 -0
- package/dist/generated/services/client-replies.js +65 -0
- package/dist/generated/services/client-replies.js.map +1 -0
- package/dist/generated/services/client-replies.ts +95 -0
- package/dist/generated/services/client-visibility.d.ts +35 -0
- package/dist/generated/services/client-visibility.d.ts.map +1 -0
- package/dist/generated/services/client-visibility.js +44 -0
- package/dist/generated/services/client-visibility.js.map +1 -0
- package/dist/generated/services/client-visibility.ts +68 -0
- package/dist/generated/services/comments.d.ts +86 -0
- package/dist/generated/services/comments.d.ts.map +1 -0
- package/dist/generated/services/comments.js +129 -0
- package/dist/generated/services/comments.js.map +1 -0
- package/dist/generated/services/comments.ts +185 -0
- package/dist/generated/services/documents.d.ts +92 -0
- package/dist/generated/services/documents.d.ts.map +1 -0
- package/dist/generated/services/documents.js +129 -0
- package/dist/generated/services/documents.js.map +1 -0
- package/dist/generated/services/documents.ts +191 -0
- package/dist/generated/services/events.d.ts +34 -0
- package/dist/generated/services/events.d.ts.map +1 -0
- package/dist/generated/services/events.js +39 -0
- package/dist/generated/services/events.js.map +1 -0
- package/dist/generated/services/events.ts +64 -0
- package/dist/generated/services/forwards.d.ts +112 -0
- package/dist/generated/services/forwards.d.ts.map +1 -0
- package/dist/generated/services/forwards.js +172 -0
- package/dist/generated/services/forwards.js.map +1 -0
- package/dist/generated/services/forwards.ts +241 -0
- package/dist/generated/services/index.d.ts +39 -0
- package/dist/generated/services/index.d.ts.map +1 -0
- package/dist/generated/services/index.js +39 -0
- package/dist/generated/services/index.js.map +1 -0
- package/dist/generated/services/index.ts +38 -0
- package/dist/generated/services/lineup.d.ts +67 -0
- package/dist/generated/services/lineup.d.ts.map +1 -0
- package/dist/generated/services/lineup.js +99 -0
- package/dist/generated/services/lineup.js.map +1 -0
- package/dist/generated/services/lineup.ts +143 -0
- package/dist/generated/services/message-boards.d.ts +27 -0
- package/dist/generated/services/message-boards.d.ts.map +1 -0
- package/dist/generated/services/message-boards.js +40 -0
- package/dist/generated/services/message-boards.js.map +1 -0
- package/dist/generated/services/message-boards.ts +55 -0
- package/dist/generated/services/message-types.d.ts +100 -0
- package/dist/generated/services/message-types.d.ts.map +1 -0
- package/dist/generated/services/message-types.js +144 -0
- package/dist/generated/services/message-types.js.map +1 -0
- package/dist/generated/services/message-types.ts +210 -0
- package/dist/generated/services/messages.d.ts +122 -0
- package/dist/generated/services/messages.d.ts.map +1 -0
- package/dist/generated/services/messages.js +180 -0
- package/dist/generated/services/messages.js.map +1 -0
- package/dist/generated/services/messages.ts +258 -0
- package/dist/generated/services/people.d.ts +122 -0
- package/dist/generated/services/people.d.ts.map +1 -0
- package/dist/generated/services/people.js +167 -0
- package/dist/generated/services/people.js.map +1 -0
- package/dist/generated/services/people.ts +252 -0
- package/dist/generated/services/projects.d.ts +109 -0
- package/dist/generated/services/projects.d.ts.map +1 -0
- package/dist/generated/services/projects.js +153 -0
- package/dist/generated/services/projects.js.map +1 -0
- package/dist/generated/services/projects.ts +224 -0
- package/dist/generated/services/recordings.d.ts +93 -0
- package/dist/generated/services/recordings.d.ts.map +1 -0
- package/dist/generated/services/recordings.js +138 -0
- package/dist/generated/services/recordings.js.map +1 -0
- package/dist/generated/services/recordings.ts +191 -0
- package/dist/generated/services/reports.d.ts +90 -0
- package/dist/generated/services/reports.d.ts.map +1 -0
- package/dist/generated/services/reports.js +124 -0
- package/dist/generated/services/reports.js.map +1 -0
- package/dist/generated/services/reports.ts +187 -0
- package/dist/generated/services/schedules.d.ts +162 -0
- package/dist/generated/services/schedules.d.ts.map +1 -0
- package/dist/generated/services/schedules.js +228 -0
- package/dist/generated/services/schedules.js.map +1 -0
- package/dist/generated/services/schedules.ts +335 -0
- package/dist/generated/services/search.d.ts +45 -0
- package/dist/generated/services/search.d.ts.map +1 -0
- package/dist/generated/services/search.js +56 -0
- package/dist/generated/services/search.js.map +1 -0
- package/dist/generated/services/search.ts +89 -0
- package/dist/generated/services/subscriptions.d.ts +73 -0
- package/dist/generated/services/subscriptions.d.ts.map +1 -0
- package/dist/generated/services/subscriptions.js +119 -0
- package/dist/generated/services/subscriptions.js.map +1 -0
- package/dist/generated/services/subscriptions.ts +160 -0
- package/dist/generated/services/templates.d.ts +140 -0
- package/dist/generated/services/templates.d.ts.map +1 -0
- package/dist/generated/services/templates.js +207 -0
- package/dist/generated/services/templates.js.map +1 -0
- package/dist/generated/services/templates.ts +294 -0
- package/dist/generated/services/timeline.d.ts +31 -0
- package/dist/generated/services/timeline.d.ts.map +1 -0
- package/dist/generated/services/timeline.js +39 -0
- package/dist/generated/services/timeline.js.map +1 -0
- package/dist/generated/services/timeline.ts +62 -0
- package/dist/generated/services/timesheets.d.ts +145 -0
- package/dist/generated/services/timesheets.d.ts.map +1 -0
- package/dist/generated/services/timesheets.js +186 -0
- package/dist/generated/services/timesheets.js.map +1 -0
- package/dist/generated/services/timesheets.ts +289 -0
- package/dist/generated/services/todolist-groups.d.ts +74 -0
- package/dist/generated/services/todolist-groups.d.ts.map +1 -0
- package/dist/generated/services/todolist-groups.js +100 -0
- package/dist/generated/services/todolist-groups.js.map +1 -0
- package/dist/generated/services/todolist-groups.ts +151 -0
- package/dist/generated/services/todolists.d.ts +95 -0
- package/dist/generated/services/todolists.d.ts.map +1 -0
- package/dist/generated/services/todolists.js +130 -0
- package/dist/generated/services/todolists.js.map +1 -0
- package/dist/generated/services/todolists.ts +192 -0
- package/dist/generated/services/todos.d.ts +175 -0
- package/dist/generated/services/todos.d.ts.map +1 -0
- package/dist/generated/services/todos.js +255 -0
- package/dist/generated/services/todos.js.map +1 -0
- package/dist/generated/services/todos.ts +369 -0
- package/dist/generated/services/todosets.d.ts +27 -0
- package/dist/generated/services/todosets.d.ts.map +1 -0
- package/dist/generated/services/todosets.js +40 -0
- package/dist/generated/services/todosets.js.map +1 -0
- package/dist/generated/services/todosets.ts +55 -0
- package/dist/generated/services/tools.d.ts +122 -0
- package/dist/generated/services/tools.d.ts.map +1 -0
- package/dist/generated/services/tools.js +197 -0
- package/dist/generated/services/tools.js.map +1 -0
- package/dist/generated/services/tools.ts +267 -0
- package/dist/generated/services/uploads.d.ts +109 -0
- package/dist/generated/services/uploads.d.ts.map +1 -0
- package/dist/generated/services/uploads.js +153 -0
- package/dist/generated/services/uploads.js.map +1 -0
- package/dist/generated/services/uploads.ts +227 -0
- package/dist/generated/services/vaults.d.ts +86 -0
- package/dist/generated/services/vaults.d.ts.map +1 -0
- package/dist/generated/services/vaults.js +126 -0
- package/dist/generated/services/vaults.js.map +1 -0
- package/dist/generated/services/vaults.ts +182 -0
- package/dist/generated/services/webhooks.d.ts +106 -0
- package/dist/generated/services/webhooks.d.ts.map +1 -0
- package/dist/generated/services/webhooks.js +157 -0
- package/dist/generated/services/webhooks.js.map +1 -0
- package/dist/generated/services/webhooks.ts +226 -0
- package/dist/hooks/otel.d.ts +136 -0
- package/dist/hooks/otel.d.ts.map +1 -0
- package/dist/hooks/otel.js +240 -0
- package/dist/hooks/otel.js.map +1 -0
- package/dist/hooks.d.ts +171 -0
- package/dist/hooks.d.ts.map +1 -0
- package/dist/hooks.js +196 -0
- package/dist/hooks.js.map +1 -0
- package/dist/index.d.ts +90 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +122 -0
- package/dist/index.js.map +1 -0
- package/dist/oauth/authorize.d.ts +48 -0
- package/dist/oauth/authorize.d.ts.map +1 -0
- package/dist/oauth/authorize.js +56 -0
- package/dist/oauth/authorize.js.map +1 -0
- package/dist/oauth/callback-server.d.ts +56 -0
- package/dist/oauth/callback-server.d.ts.map +1 -0
- package/dist/oauth/callback-server.js +150 -0
- package/dist/oauth/callback-server.js.map +1 -0
- package/dist/oauth/discovery.d.ts +54 -0
- package/dist/oauth/discovery.d.ts.map +1 -0
- package/dist/oauth/discovery.js +116 -0
- package/dist/oauth/discovery.js.map +1 -0
- package/dist/oauth/exchange.d.ts +96 -0
- package/dist/oauth/exchange.d.ts.map +1 -0
- package/dist/oauth/exchange.js +324 -0
- package/dist/oauth/exchange.js.map +1 -0
- package/dist/oauth/identity.d.ts +30 -0
- package/dist/oauth/identity.d.ts.map +1 -0
- package/dist/oauth/identity.js +82 -0
- package/dist/oauth/identity.js.map +1 -0
- package/dist/oauth/index.d.ts +50 -0
- package/dist/oauth/index.d.ts.map +1 -0
- package/dist/oauth/index.js +58 -0
- package/dist/oauth/index.js.map +1 -0
- package/dist/oauth/interactive-login.d.ts +62 -0
- package/dist/oauth/interactive-login.d.ts.map +1 -0
- package/dist/oauth/interactive-login.js +106 -0
- package/dist/oauth/interactive-login.js.map +1 -0
- package/dist/oauth/pkce.d.ts +68 -0
- package/dist/oauth/pkce.d.ts.map +1 -0
- package/dist/oauth/pkce.js +80 -0
- package/dist/oauth/pkce.js.map +1 -0
- package/dist/oauth/token-manager.d.ts +92 -0
- package/dist/oauth/token-manager.d.ts.map +1 -0
- package/dist/oauth/token-manager.js +126 -0
- package/dist/oauth/token-manager.js.map +1 -0
- package/dist/oauth/token-store.d.ts +45 -0
- package/dist/oauth/token-store.d.ts.map +1 -0
- package/dist/oauth/token-store.js +105 -0
- package/dist/oauth/token-store.js.map +1 -0
- package/dist/oauth/types.d.ts +98 -0
- package/dist/oauth/types.d.ts.map +1 -0
- package/dist/oauth/types.js +8 -0
- package/dist/oauth/types.js.map +1 -0
- package/dist/pagination-utils.d.ts +27 -0
- package/dist/pagination-utils.d.ts.map +1 -0
- package/dist/pagination-utils.js +54 -0
- package/dist/pagination-utils.js.map +1 -0
- package/dist/pagination.d.ts +56 -0
- package/dist/pagination.d.ts.map +1 -0
- package/dist/pagination.js +57 -0
- package/dist/pagination.js.map +1 -0
- package/dist/security.d.ts +68 -0
- package/dist/security.d.ts.map +1 -0
- package/dist/security.js +107 -0
- package/dist/security.js.map +1 -0
- package/dist/services/authorization.d.ts +124 -0
- package/dist/services/authorization.d.ts.map +1 -0
- package/dist/services/authorization.js +117 -0
- package/dist/services/authorization.js.map +1 -0
- package/dist/services/base.d.ts +102 -0
- package/dist/services/base.d.ts.map +1 -0
- package/dist/services/base.js +230 -0
- package/dist/services/base.js.map +1 -0
- package/dist/webhooks/adapters/node-http.d.ts +14 -0
- package/dist/webhooks/adapters/node-http.d.ts.map +1 -0
- package/dist/webhooks/adapters/node-http.js +60 -0
- package/dist/webhooks/adapters/node-http.js.map +1 -0
- package/dist/webhooks/events.d.ts +52 -0
- package/dist/webhooks/events.d.ts.map +1 -0
- package/dist/webhooks/events.js +52 -0
- package/dist/webhooks/events.js.map +1 -0
- package/dist/webhooks/handler.d.ts +62 -0
- package/dist/webhooks/handler.d.ts.map +1 -0
- package/dist/webhooks/handler.js +226 -0
- package/dist/webhooks/handler.js.map +1 -0
- package/dist/webhooks/index.d.ts +5 -0
- package/dist/webhooks/index.d.ts.map +1 -0
- package/dist/webhooks/index.js +5 -0
- package/dist/webhooks/index.js.map +1 -0
- package/dist/webhooks/verify.d.ts +11 -0
- package/dist/webhooks/verify.d.ts.map +1 -0
- package/dist/webhooks/verify.js +25 -0
- package/dist/webhooks/verify.js.map +1 -0
- package/package.json +70 -0
- package/src/generated/metadata.json +2281 -0
- package/src/generated/openapi-stripped.json +21268 -0
- package/src/generated/path-mapping.ts +199 -0
- package/src/generated/schema.d.ts +14883 -0
- package/src/generated/services/attachments.ts +59 -0
- package/src/generated/services/boosts.ts +250 -0
- package/src/generated/services/campfires.ts +433 -0
- package/src/generated/services/card-columns.ts +360 -0
- package/src/generated/services/card-steps.ts +221 -0
- package/src/generated/services/card-tables.ts +55 -0
- package/src/generated/services/cards.ts +247 -0
- package/src/generated/services/checkins.ts +600 -0
- package/src/generated/services/client-approvals.ts +89 -0
- package/src/generated/services/client-correspondences.ts +89 -0
- package/src/generated/services/client-replies.ts +95 -0
- package/src/generated/services/client-visibility.ts +68 -0
- package/src/generated/services/comments.ts +185 -0
- package/src/generated/services/documents.ts +191 -0
- package/src/generated/services/events.ts +64 -0
- package/src/generated/services/forwards.ts +241 -0
- package/src/generated/services/index.ts +38 -0
- package/src/generated/services/lineup.ts +143 -0
- package/src/generated/services/message-boards.ts +55 -0
- package/src/generated/services/message-types.ts +210 -0
- package/src/generated/services/messages.ts +258 -0
- package/src/generated/services/people.ts +252 -0
- package/src/generated/services/projects.ts +224 -0
- package/src/generated/services/recordings.ts +191 -0
- package/src/generated/services/reports.ts +187 -0
- package/src/generated/services/schedules.ts +335 -0
- package/src/generated/services/search.ts +89 -0
- package/src/generated/services/subscriptions.ts +160 -0
- package/src/generated/services/templates.ts +294 -0
- package/src/generated/services/timeline.ts +62 -0
- package/src/generated/services/timesheets.ts +289 -0
- package/src/generated/services/todolist-groups.ts +151 -0
- package/src/generated/services/todolists.ts +192 -0
- package/src/generated/services/todos.ts +369 -0
- package/src/generated/services/todosets.ts +55 -0
- package/src/generated/services/tools.ts +267 -0
- package/src/generated/services/uploads.ts +227 -0
- package/src/generated/services/vaults.ts +182 -0
- package/src/generated/services/webhooks.ts +226 -0
|
@@ -0,0 +1,182 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Vaults 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
|
+
/** Vault entity from the Basecamp API. */
|
|
18
|
+
export type Vault = components["schemas"]["Vault"];
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* Request parameters for update.
|
|
22
|
+
*/
|
|
23
|
+
export interface UpdateVaultRequest {
|
|
24
|
+
/** Title */
|
|
25
|
+
title?: string;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* Options for list.
|
|
30
|
+
*/
|
|
31
|
+
export interface ListVaultOptions extends PaginationOptions {
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* Request parameters for create.
|
|
36
|
+
*/
|
|
37
|
+
export interface CreateVaultRequest {
|
|
38
|
+
/** Title */
|
|
39
|
+
title: string;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
// =============================================================================
|
|
44
|
+
// Service
|
|
45
|
+
// =============================================================================
|
|
46
|
+
|
|
47
|
+
/**
|
|
48
|
+
* Service for Vaults operations.
|
|
49
|
+
*/
|
|
50
|
+
export class VaultsService extends BaseService {
|
|
51
|
+
|
|
52
|
+
/**
|
|
53
|
+
* Get a single vault by id
|
|
54
|
+
* @param vaultId - The vault ID
|
|
55
|
+
* @returns The Vault
|
|
56
|
+
* @throws {BasecampError} If the resource is not found
|
|
57
|
+
*
|
|
58
|
+
* @example
|
|
59
|
+
* ```ts
|
|
60
|
+
* const result = await client.vaults.get(123);
|
|
61
|
+
* ```
|
|
62
|
+
*/
|
|
63
|
+
async get(vaultId: number): Promise<Vault> {
|
|
64
|
+
const response = await this.request(
|
|
65
|
+
{
|
|
66
|
+
service: "Vaults",
|
|
67
|
+
operation: "GetVault",
|
|
68
|
+
resourceType: "vault",
|
|
69
|
+
isMutation: false,
|
|
70
|
+
resourceId: vaultId,
|
|
71
|
+
},
|
|
72
|
+
() =>
|
|
73
|
+
this.client.GET("/vaults/{vaultId}", {
|
|
74
|
+
params: {
|
|
75
|
+
path: { vaultId },
|
|
76
|
+
},
|
|
77
|
+
})
|
|
78
|
+
);
|
|
79
|
+
return response;
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
/**
|
|
83
|
+
* Update an existing vault
|
|
84
|
+
* @param vaultId - The vault ID
|
|
85
|
+
* @param req - Vault update parameters
|
|
86
|
+
* @returns The Vault
|
|
87
|
+
* @throws {BasecampError} If the resource is not found or fields are invalid
|
|
88
|
+
*
|
|
89
|
+
* @example
|
|
90
|
+
* ```ts
|
|
91
|
+
* const result = await client.vaults.update(123, { });
|
|
92
|
+
* ```
|
|
93
|
+
*/
|
|
94
|
+
async update(vaultId: number, req: UpdateVaultRequest): Promise<Vault> {
|
|
95
|
+
const response = await this.request(
|
|
96
|
+
{
|
|
97
|
+
service: "Vaults",
|
|
98
|
+
operation: "UpdateVault",
|
|
99
|
+
resourceType: "vault",
|
|
100
|
+
isMutation: true,
|
|
101
|
+
resourceId: vaultId,
|
|
102
|
+
},
|
|
103
|
+
() =>
|
|
104
|
+
this.client.PUT("/vaults/{vaultId}", {
|
|
105
|
+
params: {
|
|
106
|
+
path: { vaultId },
|
|
107
|
+
},
|
|
108
|
+
body: {
|
|
109
|
+
title: req.title,
|
|
110
|
+
},
|
|
111
|
+
})
|
|
112
|
+
);
|
|
113
|
+
return response;
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
/**
|
|
117
|
+
* List vaults (subfolders) in a vault
|
|
118
|
+
* @param vaultId - The vault ID
|
|
119
|
+
* @param options - Optional query parameters
|
|
120
|
+
* @returns All Vault across all pages, with .meta.totalCount
|
|
121
|
+
*
|
|
122
|
+
* @example
|
|
123
|
+
* ```ts
|
|
124
|
+
* const result = await client.vaults.list(123);
|
|
125
|
+
* ```
|
|
126
|
+
*/
|
|
127
|
+
async list(vaultId: number, options?: ListVaultOptions): Promise<ListResult<Vault>> {
|
|
128
|
+
return this.requestPaginated(
|
|
129
|
+
{
|
|
130
|
+
service: "Vaults",
|
|
131
|
+
operation: "ListVaults",
|
|
132
|
+
resourceType: "vault",
|
|
133
|
+
isMutation: false,
|
|
134
|
+
resourceId: vaultId,
|
|
135
|
+
},
|
|
136
|
+
() =>
|
|
137
|
+
this.client.GET("/vaults/{vaultId}/vaults.json", {
|
|
138
|
+
params: {
|
|
139
|
+
path: { vaultId },
|
|
140
|
+
},
|
|
141
|
+
})
|
|
142
|
+
, options
|
|
143
|
+
);
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
/**
|
|
147
|
+
* Create a new vault (subfolder) in a vault
|
|
148
|
+
* @param vaultId - The vault ID
|
|
149
|
+
* @param req - Vault creation parameters
|
|
150
|
+
* @returns The Vault
|
|
151
|
+
* @throws {BasecampError} If required fields are missing or invalid
|
|
152
|
+
*
|
|
153
|
+
* @example
|
|
154
|
+
* ```ts
|
|
155
|
+
* const result = await client.vaults.create(123, { title: "example" });
|
|
156
|
+
* ```
|
|
157
|
+
*/
|
|
158
|
+
async create(vaultId: number, req: CreateVaultRequest): Promise<Vault> {
|
|
159
|
+
if (!req.title) {
|
|
160
|
+
throw Errors.validation("Title is required");
|
|
161
|
+
}
|
|
162
|
+
const response = await this.request(
|
|
163
|
+
{
|
|
164
|
+
service: "Vaults",
|
|
165
|
+
operation: "CreateVault",
|
|
166
|
+
resourceType: "vault",
|
|
167
|
+
isMutation: true,
|
|
168
|
+
resourceId: vaultId,
|
|
169
|
+
},
|
|
170
|
+
() =>
|
|
171
|
+
this.client.POST("/vaults/{vaultId}/vaults.json", {
|
|
172
|
+
params: {
|
|
173
|
+
path: { vaultId },
|
|
174
|
+
},
|
|
175
|
+
body: {
|
|
176
|
+
title: req.title,
|
|
177
|
+
},
|
|
178
|
+
})
|
|
179
|
+
);
|
|
180
|
+
return response;
|
|
181
|
+
}
|
|
182
|
+
}
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Webhooks service for the Basecamp API.
|
|
3
|
+
*
|
|
4
|
+
* @generated from OpenAPI spec - do not edit directly
|
|
5
|
+
*/
|
|
6
|
+
import { BaseService } from "../../services/base.js";
|
|
7
|
+
import type { components } from "../schema.js";
|
|
8
|
+
import { ListResult } from "../../pagination.js";
|
|
9
|
+
import type { PaginationOptions } from "../../pagination.js";
|
|
10
|
+
/** Webhook entity from the Basecamp API. */
|
|
11
|
+
export type Webhook = components["schemas"]["Webhook"];
|
|
12
|
+
/**
|
|
13
|
+
* Options for list.
|
|
14
|
+
*/
|
|
15
|
+
export interface ListWebhookOptions extends PaginationOptions {
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Request parameters for create.
|
|
19
|
+
*/
|
|
20
|
+
export interface CreateWebhookRequest {
|
|
21
|
+
/** Payload url */
|
|
22
|
+
payloadUrl: string;
|
|
23
|
+
/** Types */
|
|
24
|
+
types: string[];
|
|
25
|
+
/** Active */
|
|
26
|
+
active?: boolean;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Request parameters for update.
|
|
30
|
+
*/
|
|
31
|
+
export interface UpdateWebhookRequest {
|
|
32
|
+
/** Payload url */
|
|
33
|
+
payloadUrl?: string;
|
|
34
|
+
/** Types */
|
|
35
|
+
types?: string[];
|
|
36
|
+
/** Active */
|
|
37
|
+
active?: boolean;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Service for Webhooks operations.
|
|
41
|
+
*/
|
|
42
|
+
export declare class WebhooksService extends BaseService {
|
|
43
|
+
/**
|
|
44
|
+
* List all webhooks for a project
|
|
45
|
+
* @param bucketId - The bucket ID
|
|
46
|
+
* @param options - Optional query parameters
|
|
47
|
+
* @returns All Webhook across all pages, with .meta.totalCount
|
|
48
|
+
*
|
|
49
|
+
* @example
|
|
50
|
+
* ```ts
|
|
51
|
+
* const result = await client.webhooks.list(123);
|
|
52
|
+
* ```
|
|
53
|
+
*/
|
|
54
|
+
list(bucketId: number, options?: ListWebhookOptions): Promise<ListResult<Webhook>>;
|
|
55
|
+
/**
|
|
56
|
+
* Create a new webhook for a project
|
|
57
|
+
* @param bucketId - The bucket ID
|
|
58
|
+
* @param req - Webhook creation parameters
|
|
59
|
+
* @returns The Webhook
|
|
60
|
+
* @throws {BasecampError} If required fields are missing or invalid
|
|
61
|
+
*
|
|
62
|
+
* @example
|
|
63
|
+
* ```ts
|
|
64
|
+
* const result = await client.webhooks.create(123, { payloadUrl: "example", types: [1234] });
|
|
65
|
+
* ```
|
|
66
|
+
*/
|
|
67
|
+
create(bucketId: number, req: CreateWebhookRequest): Promise<Webhook>;
|
|
68
|
+
/**
|
|
69
|
+
* Get a single webhook by id
|
|
70
|
+
* @param webhookId - The webhook ID
|
|
71
|
+
* @returns The Webhook
|
|
72
|
+
* @throws {BasecampError} If the resource is not found
|
|
73
|
+
*
|
|
74
|
+
* @example
|
|
75
|
+
* ```ts
|
|
76
|
+
* const result = await client.webhooks.get(123);
|
|
77
|
+
* ```
|
|
78
|
+
*/
|
|
79
|
+
get(webhookId: number): Promise<Webhook>;
|
|
80
|
+
/**
|
|
81
|
+
* Update an existing webhook
|
|
82
|
+
* @param webhookId - The webhook ID
|
|
83
|
+
* @param req - Webhook update parameters
|
|
84
|
+
* @returns The Webhook
|
|
85
|
+
* @throws {BasecampError} If the resource is not found or fields are invalid
|
|
86
|
+
*
|
|
87
|
+
* @example
|
|
88
|
+
* ```ts
|
|
89
|
+
* const result = await client.webhooks.update(123, { });
|
|
90
|
+
* ```
|
|
91
|
+
*/
|
|
92
|
+
update(webhookId: number, req: UpdateWebhookRequest): Promise<Webhook>;
|
|
93
|
+
/**
|
|
94
|
+
* Delete a webhook
|
|
95
|
+
* @param webhookId - The webhook ID
|
|
96
|
+
* @returns void
|
|
97
|
+
* @throws {BasecampError} If the request fails
|
|
98
|
+
*
|
|
99
|
+
* @example
|
|
100
|
+
* ```ts
|
|
101
|
+
* await client.webhooks.delete(123);
|
|
102
|
+
* ```
|
|
103
|
+
*/
|
|
104
|
+
delete(webhookId: number): Promise<void>;
|
|
105
|
+
}
|
|
106
|
+
//# sourceMappingURL=webhooks.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"webhooks.d.ts","sourceRoot":"","sources":["../../../src/generated/services/webhooks.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,4CAA4C;AAC5C,MAAM,MAAM,OAAO,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,CAAC;AAEvD;;GAEG;AACH,MAAM,WAAW,kBAAmB,SAAQ,iBAAiB;CAC5D;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,kBAAkB;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY;IACZ,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,aAAa;IACb,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,kBAAkB;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY;IACZ,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,aAAa;IACb,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAOD;;GAEG;AACH,qBAAa,eAAgB,SAAQ,WAAW;IAE9C;;;;;;;;;;OAUG;IACG,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;IAmBxF;;;;;;;;;;;OAWG;IACG,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,oBAAoB,GAAG,OAAO,CAAC,OAAO,CAAC;IA8B3E;;;;;;;;;;OAUG;IACG,GAAG,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAmB9C;;;;;;;;;;;OAWG;IACG,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,oBAAoB,GAAG,OAAO,CAAC,OAAO,CAAC;IAwB5E;;;;;;;;;;OAUG;IACG,MAAM,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAiB/C"}
|
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Webhooks service for the Basecamp API.
|
|
3
|
+
*
|
|
4
|
+
* @generated from OpenAPI spec - do not edit directly
|
|
5
|
+
*/
|
|
6
|
+
import { BaseService } from "../../services/base.js";
|
|
7
|
+
import { Errors } from "../../errors.js";
|
|
8
|
+
// =============================================================================
|
|
9
|
+
// Service
|
|
10
|
+
// =============================================================================
|
|
11
|
+
/**
|
|
12
|
+
* Service for Webhooks operations.
|
|
13
|
+
*/
|
|
14
|
+
export class WebhooksService extends BaseService {
|
|
15
|
+
/**
|
|
16
|
+
* List all webhooks for a project
|
|
17
|
+
* @param bucketId - The bucket ID
|
|
18
|
+
* @param options - Optional query parameters
|
|
19
|
+
* @returns All Webhook across all pages, with .meta.totalCount
|
|
20
|
+
*
|
|
21
|
+
* @example
|
|
22
|
+
* ```ts
|
|
23
|
+
* const result = await client.webhooks.list(123);
|
|
24
|
+
* ```
|
|
25
|
+
*/
|
|
26
|
+
async list(bucketId, options) {
|
|
27
|
+
return this.requestPaginated({
|
|
28
|
+
service: "Webhooks",
|
|
29
|
+
operation: "ListWebhooks",
|
|
30
|
+
resourceType: "webhook",
|
|
31
|
+
isMutation: false,
|
|
32
|
+
resourceId: bucketId,
|
|
33
|
+
}, () => this.client.GET("/buckets/{bucketId}/webhooks.json", {
|
|
34
|
+
params: {
|
|
35
|
+
path: { bucketId },
|
|
36
|
+
},
|
|
37
|
+
}), options);
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Create a new webhook for a project
|
|
41
|
+
* @param bucketId - The bucket ID
|
|
42
|
+
* @param req - Webhook creation parameters
|
|
43
|
+
* @returns The Webhook
|
|
44
|
+
* @throws {BasecampError} If required fields are missing or invalid
|
|
45
|
+
*
|
|
46
|
+
* @example
|
|
47
|
+
* ```ts
|
|
48
|
+
* const result = await client.webhooks.create(123, { payloadUrl: "example", types: [1234] });
|
|
49
|
+
* ```
|
|
50
|
+
*/
|
|
51
|
+
async create(bucketId, req) {
|
|
52
|
+
if (!req.payloadUrl) {
|
|
53
|
+
throw Errors.validation("Payload url is required");
|
|
54
|
+
}
|
|
55
|
+
if (!req.types) {
|
|
56
|
+
throw Errors.validation("Types is required");
|
|
57
|
+
}
|
|
58
|
+
const response = await this.request({
|
|
59
|
+
service: "Webhooks",
|
|
60
|
+
operation: "CreateWebhook",
|
|
61
|
+
resourceType: "webhook",
|
|
62
|
+
isMutation: true,
|
|
63
|
+
resourceId: bucketId,
|
|
64
|
+
}, () => this.client.POST("/buckets/{bucketId}/webhooks.json", {
|
|
65
|
+
params: {
|
|
66
|
+
path: { bucketId },
|
|
67
|
+
},
|
|
68
|
+
body: {
|
|
69
|
+
payload_url: req.payloadUrl,
|
|
70
|
+
types: req.types,
|
|
71
|
+
active: req.active,
|
|
72
|
+
},
|
|
73
|
+
}));
|
|
74
|
+
return response;
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Get a single webhook by id
|
|
78
|
+
* @param webhookId - The webhook ID
|
|
79
|
+
* @returns The Webhook
|
|
80
|
+
* @throws {BasecampError} If the resource is not found
|
|
81
|
+
*
|
|
82
|
+
* @example
|
|
83
|
+
* ```ts
|
|
84
|
+
* const result = await client.webhooks.get(123);
|
|
85
|
+
* ```
|
|
86
|
+
*/
|
|
87
|
+
async get(webhookId) {
|
|
88
|
+
const response = await this.request({
|
|
89
|
+
service: "Webhooks",
|
|
90
|
+
operation: "GetWebhook",
|
|
91
|
+
resourceType: "webhook",
|
|
92
|
+
isMutation: false,
|
|
93
|
+
resourceId: webhookId,
|
|
94
|
+
}, () => this.client.GET("/webhooks/{webhookId}", {
|
|
95
|
+
params: {
|
|
96
|
+
path: { webhookId },
|
|
97
|
+
},
|
|
98
|
+
}));
|
|
99
|
+
return response;
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Update an existing webhook
|
|
103
|
+
* @param webhookId - The webhook ID
|
|
104
|
+
* @param req - Webhook update parameters
|
|
105
|
+
* @returns The Webhook
|
|
106
|
+
* @throws {BasecampError} If the resource is not found or fields are invalid
|
|
107
|
+
*
|
|
108
|
+
* @example
|
|
109
|
+
* ```ts
|
|
110
|
+
* const result = await client.webhooks.update(123, { });
|
|
111
|
+
* ```
|
|
112
|
+
*/
|
|
113
|
+
async update(webhookId, req) {
|
|
114
|
+
const response = await this.request({
|
|
115
|
+
service: "Webhooks",
|
|
116
|
+
operation: "UpdateWebhook",
|
|
117
|
+
resourceType: "webhook",
|
|
118
|
+
isMutation: true,
|
|
119
|
+
resourceId: webhookId,
|
|
120
|
+
}, () => this.client.PUT("/webhooks/{webhookId}", {
|
|
121
|
+
params: {
|
|
122
|
+
path: { webhookId },
|
|
123
|
+
},
|
|
124
|
+
body: {
|
|
125
|
+
payload_url: req.payloadUrl,
|
|
126
|
+
types: req.types,
|
|
127
|
+
active: req.active,
|
|
128
|
+
},
|
|
129
|
+
}));
|
|
130
|
+
return response;
|
|
131
|
+
}
|
|
132
|
+
/**
|
|
133
|
+
* Delete a webhook
|
|
134
|
+
* @param webhookId - The webhook ID
|
|
135
|
+
* @returns void
|
|
136
|
+
* @throws {BasecampError} If the request fails
|
|
137
|
+
*
|
|
138
|
+
* @example
|
|
139
|
+
* ```ts
|
|
140
|
+
* await client.webhooks.delete(123);
|
|
141
|
+
* ```
|
|
142
|
+
*/
|
|
143
|
+
async delete(webhookId) {
|
|
144
|
+
await this.request({
|
|
145
|
+
service: "Webhooks",
|
|
146
|
+
operation: "DeleteWebhook",
|
|
147
|
+
resourceType: "webhook",
|
|
148
|
+
isMutation: true,
|
|
149
|
+
resourceId: webhookId,
|
|
150
|
+
}, () => this.client.DELETE("/webhooks/{webhookId}", {
|
|
151
|
+
params: {
|
|
152
|
+
path: { webhookId },
|
|
153
|
+
},
|
|
154
|
+
}));
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
//# sourceMappingURL=webhooks.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"webhooks.js","sourceRoot":"","sources":["../../../src/generated/services/webhooks.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,226 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Webhooks 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
|
+
/** Webhook entity from the Basecamp API. */
|
|
18
|
+
export type Webhook = components["schemas"]["Webhook"];
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* Options for list.
|
|
22
|
+
*/
|
|
23
|
+
export interface ListWebhookOptions extends PaginationOptions {
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* Request parameters for create.
|
|
28
|
+
*/
|
|
29
|
+
export interface CreateWebhookRequest {
|
|
30
|
+
/** Payload url */
|
|
31
|
+
payloadUrl: string;
|
|
32
|
+
/** Types */
|
|
33
|
+
types: string[];
|
|
34
|
+
/** Active */
|
|
35
|
+
active?: boolean;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
/**
|
|
39
|
+
* Request parameters for update.
|
|
40
|
+
*/
|
|
41
|
+
export interface UpdateWebhookRequest {
|
|
42
|
+
/** Payload url */
|
|
43
|
+
payloadUrl?: string;
|
|
44
|
+
/** Types */
|
|
45
|
+
types?: string[];
|
|
46
|
+
/** Active */
|
|
47
|
+
active?: boolean;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
|
|
51
|
+
// =============================================================================
|
|
52
|
+
// Service
|
|
53
|
+
// =============================================================================
|
|
54
|
+
|
|
55
|
+
/**
|
|
56
|
+
* Service for Webhooks operations.
|
|
57
|
+
*/
|
|
58
|
+
export class WebhooksService extends BaseService {
|
|
59
|
+
|
|
60
|
+
/**
|
|
61
|
+
* List all webhooks for a project
|
|
62
|
+
* @param bucketId - The bucket ID
|
|
63
|
+
* @param options - Optional query parameters
|
|
64
|
+
* @returns All Webhook across all pages, with .meta.totalCount
|
|
65
|
+
*
|
|
66
|
+
* @example
|
|
67
|
+
* ```ts
|
|
68
|
+
* const result = await client.webhooks.list(123);
|
|
69
|
+
* ```
|
|
70
|
+
*/
|
|
71
|
+
async list(bucketId: number, options?: ListWebhookOptions): Promise<ListResult<Webhook>> {
|
|
72
|
+
return this.requestPaginated(
|
|
73
|
+
{
|
|
74
|
+
service: "Webhooks",
|
|
75
|
+
operation: "ListWebhooks",
|
|
76
|
+
resourceType: "webhook",
|
|
77
|
+
isMutation: false,
|
|
78
|
+
resourceId: bucketId,
|
|
79
|
+
},
|
|
80
|
+
() =>
|
|
81
|
+
this.client.GET("/buckets/{bucketId}/webhooks.json", {
|
|
82
|
+
params: {
|
|
83
|
+
path: { bucketId },
|
|
84
|
+
},
|
|
85
|
+
})
|
|
86
|
+
, options
|
|
87
|
+
);
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
/**
|
|
91
|
+
* Create a new webhook for a project
|
|
92
|
+
* @param bucketId - The bucket ID
|
|
93
|
+
* @param req - Webhook creation parameters
|
|
94
|
+
* @returns The Webhook
|
|
95
|
+
* @throws {BasecampError} If required fields are missing or invalid
|
|
96
|
+
*
|
|
97
|
+
* @example
|
|
98
|
+
* ```ts
|
|
99
|
+
* const result = await client.webhooks.create(123, { payloadUrl: "example", types: [1234] });
|
|
100
|
+
* ```
|
|
101
|
+
*/
|
|
102
|
+
async create(bucketId: number, req: CreateWebhookRequest): Promise<Webhook> {
|
|
103
|
+
if (!req.payloadUrl) {
|
|
104
|
+
throw Errors.validation("Payload url is required");
|
|
105
|
+
}
|
|
106
|
+
if (!req.types) {
|
|
107
|
+
throw Errors.validation("Types is required");
|
|
108
|
+
}
|
|
109
|
+
const response = await this.request(
|
|
110
|
+
{
|
|
111
|
+
service: "Webhooks",
|
|
112
|
+
operation: "CreateWebhook",
|
|
113
|
+
resourceType: "webhook",
|
|
114
|
+
isMutation: true,
|
|
115
|
+
resourceId: bucketId,
|
|
116
|
+
},
|
|
117
|
+
() =>
|
|
118
|
+
this.client.POST("/buckets/{bucketId}/webhooks.json", {
|
|
119
|
+
params: {
|
|
120
|
+
path: { bucketId },
|
|
121
|
+
},
|
|
122
|
+
body: {
|
|
123
|
+
payload_url: req.payloadUrl,
|
|
124
|
+
types: req.types,
|
|
125
|
+
active: req.active,
|
|
126
|
+
},
|
|
127
|
+
})
|
|
128
|
+
);
|
|
129
|
+
return response;
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
/**
|
|
133
|
+
* Get a single webhook by id
|
|
134
|
+
* @param webhookId - The webhook ID
|
|
135
|
+
* @returns The Webhook
|
|
136
|
+
* @throws {BasecampError} If the resource is not found
|
|
137
|
+
*
|
|
138
|
+
* @example
|
|
139
|
+
* ```ts
|
|
140
|
+
* const result = await client.webhooks.get(123);
|
|
141
|
+
* ```
|
|
142
|
+
*/
|
|
143
|
+
async get(webhookId: number): Promise<Webhook> {
|
|
144
|
+
const response = await this.request(
|
|
145
|
+
{
|
|
146
|
+
service: "Webhooks",
|
|
147
|
+
operation: "GetWebhook",
|
|
148
|
+
resourceType: "webhook",
|
|
149
|
+
isMutation: false,
|
|
150
|
+
resourceId: webhookId,
|
|
151
|
+
},
|
|
152
|
+
() =>
|
|
153
|
+
this.client.GET("/webhooks/{webhookId}", {
|
|
154
|
+
params: {
|
|
155
|
+
path: { webhookId },
|
|
156
|
+
},
|
|
157
|
+
})
|
|
158
|
+
);
|
|
159
|
+
return response;
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
/**
|
|
163
|
+
* Update an existing webhook
|
|
164
|
+
* @param webhookId - The webhook ID
|
|
165
|
+
* @param req - Webhook update parameters
|
|
166
|
+
* @returns The Webhook
|
|
167
|
+
* @throws {BasecampError} If the resource is not found or fields are invalid
|
|
168
|
+
*
|
|
169
|
+
* @example
|
|
170
|
+
* ```ts
|
|
171
|
+
* const result = await client.webhooks.update(123, { });
|
|
172
|
+
* ```
|
|
173
|
+
*/
|
|
174
|
+
async update(webhookId: number, req: UpdateWebhookRequest): Promise<Webhook> {
|
|
175
|
+
const response = await this.request(
|
|
176
|
+
{
|
|
177
|
+
service: "Webhooks",
|
|
178
|
+
operation: "UpdateWebhook",
|
|
179
|
+
resourceType: "webhook",
|
|
180
|
+
isMutation: true,
|
|
181
|
+
resourceId: webhookId,
|
|
182
|
+
},
|
|
183
|
+
() =>
|
|
184
|
+
this.client.PUT("/webhooks/{webhookId}", {
|
|
185
|
+
params: {
|
|
186
|
+
path: { webhookId },
|
|
187
|
+
},
|
|
188
|
+
body: {
|
|
189
|
+
payload_url: req.payloadUrl,
|
|
190
|
+
types: req.types,
|
|
191
|
+
active: req.active,
|
|
192
|
+
},
|
|
193
|
+
})
|
|
194
|
+
);
|
|
195
|
+
return response;
|
|
196
|
+
}
|
|
197
|
+
|
|
198
|
+
/**
|
|
199
|
+
* Delete a webhook
|
|
200
|
+
* @param webhookId - The webhook ID
|
|
201
|
+
* @returns void
|
|
202
|
+
* @throws {BasecampError} If the request fails
|
|
203
|
+
*
|
|
204
|
+
* @example
|
|
205
|
+
* ```ts
|
|
206
|
+
* await client.webhooks.delete(123);
|
|
207
|
+
* ```
|
|
208
|
+
*/
|
|
209
|
+
async delete(webhookId: number): Promise<void> {
|
|
210
|
+
await this.request(
|
|
211
|
+
{
|
|
212
|
+
service: "Webhooks",
|
|
213
|
+
operation: "DeleteWebhook",
|
|
214
|
+
resourceType: "webhook",
|
|
215
|
+
isMutation: true,
|
|
216
|
+
resourceId: webhookId,
|
|
217
|
+
},
|
|
218
|
+
() =>
|
|
219
|
+
this.client.DELETE("/webhooks/{webhookId}", {
|
|
220
|
+
params: {
|
|
221
|
+
path: { webhookId },
|
|
222
|
+
},
|
|
223
|
+
})
|
|
224
|
+
);
|
|
225
|
+
}
|
|
226
|
+
}
|