1 | |
2 | type Box = { |
3 | token: string; |
4 | }; |
5 | |
6 | * Update webhook |
7 | * Updates a webhook. |
8 | */ |
9 | export async function main( |
10 | auth: Box, |
11 | webhook_id: string, |
12 | body: { |
13 | target?: { id?: string; type?: "file" | "folder" }; |
14 | address?: string; |
15 | triggers?: |
16 | | "FILE.UPLOADED" |
17 | | "FILE.PREVIEWED" |
18 | | "FILE.DOWNLOADED" |
19 | | "FILE.TRASHED" |
20 | | "FILE.DELETED" |
21 | | "FILE.RESTORED" |
22 | | "FILE.COPIED" |
23 | | "FILE.MOVED" |
24 | | "FILE.LOCKED" |
25 | | "FILE.UNLOCKED" |
26 | | "FILE.RENAMED" |
27 | | "COMMENT.CREATED" |
28 | | "COMMENT.UPDATED" |
29 | | "COMMENT.DELETED" |
30 | | "TASK_ASSIGNMENT.CREATED" |
31 | | "TASK_ASSIGNMENT.UPDATED" |
32 | | "METADATA_INSTANCE.CREATED" |
33 | | "METADATA_INSTANCE.UPDATED" |
34 | | "METADATA_INSTANCE.DELETED" |
35 | | "FOLDER.CREATED" |
36 | | "FOLDER.RENAMED" |
37 | | "FOLDER.DOWNLOADED" |
38 | | "FOLDER.RESTORED" |
39 | | "FOLDER.DELETED" |
40 | | "FOLDER.COPIED" |
41 | | "FOLDER.MOVED" |
42 | | "FOLDER.TRASHED" |
43 | | "WEBHOOK.DELETED" |
44 | | "COLLABORATION.CREATED" |
45 | | "COLLABORATION.ACCEPTED" |
46 | | "COLLABORATION.REJECTED" |
47 | | "COLLABORATION.REMOVED" |
48 | | "COLLABORATION.UPDATED" |
49 | | "SHARED_LINK.DELETED" |
50 | | "SHARED_LINK.CREATED" |
51 | | "SHARED_LINK.UPDATED" |
52 | | "SIGN_REQUEST.COMPLETED" |
53 | | "SIGN_REQUEST.DECLINED" |
54 | | "SIGN_REQUEST.EXPIRED" |
55 | | "SIGN_REQUEST.SIGNER_EMAIL_BOUNCED"[]; |
56 | }, |
57 | ) { |
58 | const url = new URL(`https://api.box.com/2.0/webhooks/${webhook_id}`); |
59 |
|
60 | const response = await fetch(url, { |
61 | method: "PUT", |
62 | headers: { |
63 | "Content-Type": "application/json", |
64 | Authorization: "Bearer " + auth.token, |
65 | }, |
66 | body: JSON.stringify(body), |
67 | }); |
68 | if (!response.ok) { |
69 | const text = await response.text(); |
70 | throw new Error(`${response.status} ${text}`); |
71 | } |
72 | return await response.json(); |
73 | } |
74 |
|