0

Update Webhook

by
Published Nov 5, 2024

Update a webhook.

Script enode Verified

The script

Submitted by hugo697 Bun
Verified 581 days ago
1
//native
2
type Enode = {
3
	token: string
4
}
5

6
export async function main(
7
	auth: Enode,
8
	webhookId: string,
9
	body: {
10
		url?: string
11
		secret?: string
12
		events?:
13
			| '*'
14
			| 'user:vehicle:discovered'
15
			| 'user:vehicle:updated'
16
			| 'user:vehicle:deleted'
17
			| 'user:vehicle:smart-charging-status-updated'
18
			| 'user:charge-action:updated'
19
			| 'user:vendor-action:updated'
20
			| 'user:schedule:execution-updated'
21
			| 'user:charger:discovered'
22
			| 'user:charger:updated'
23
			| 'user:charger:deleted'
24
			| 'user:hvac:discovered'
25
			| 'user:hvac:updated'
26
			| 'user:hvac:deleted'
27
			| 'user:inverter:discovered'
28
			| 'user:inverter:updated'
29
			| 'user:inverter:deleted'
30
			| 'user:inverter:statistics-updated'
31
			| 'user:credentials:invalidated'
32
			| 'user:battery:discovered'
33
			| 'user:battery:updated'
34
			| 'user:battery:deleted'
35
			| 'enode:webhook:test'
36
			| 'user:meter:discovered'
37
			| 'user:meter:updated'
38
			| 'user:meter:deleted'[]
39
		apiVersion?: string
40
		authentication?: { headerName: string; headerValue: string }
41
	}
42
) {
43
	const url = new URL(`https://enode-api.production.enode.io/webhooks/${webhookId}`)
44

45
	const response = await fetch(url, {
46
		method: 'PATCH',
47
		headers: {
48
			'Content-Type': 'application/json',
49
			Authorization: 'Bearer ' + auth.token
50
		},
51
		body: JSON.stringify(body)
52
	})
53

54
	if (!response.ok) {
55
		const text = await response.text()
56
		throw new Error(`${response.status} ${text}`)
57
	}
58

59
	return await response.json()
60
}
61