0

Create Webhook

by
Published Nov 5, 2024

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

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

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

58
	return await response.json()
59
}
60