1 | |
2 | type Zuplo = { |
3 | apiKey: string |
4 | } |
5 | |
6 | * Lists consumers |
7 | * Lists all consumers belonging to this account. |
8 | */ |
9 | export async function main( |
10 | auth: Zuplo, |
11 | accountName: string, |
12 | bucketName: string, |
13 | limit: string | undefined, |
14 | offset: string | undefined, |
15 | include_api_keys: string | undefined, |
16 | include_manager_invites: string | undefined, |
17 | include_managers: string | undefined, |
18 | key_format: 'none' | 'visible' | 'masked' | undefined, |
19 | manager_email: string | undefined, |
20 | tag: string | undefined |
21 | ) { |
22 | const url = new URL( |
23 | `https://dev.zuplo.com/v1/accounts/${accountName}/key-buckets/${bucketName}/consumers` |
24 | ) |
25 | for (const [k, v] of [ |
26 | ['limit', limit], |
27 | ['offset', offset], |
28 | ['include-api-keys', include_api_keys], |
29 | ['include-manager-invites', include_manager_invites], |
30 | ['include-managers', include_managers], |
31 | ['key-format', key_format], |
32 | ['manager-email', manager_email], |
33 | ['tag', tag] |
34 | ]) { |
35 | if (v !== undefined && v !== '' && k !== undefined) { |
36 | url.searchParams.append(k, v) |
37 | } |
38 | } |
39 | const response = await fetch(url, { |
40 | method: 'GET', |
41 | headers: { |
42 | Authorization: 'Bearer ' + auth.apiKey |
43 | }, |
44 | body: undefined |
45 | }) |
46 | if (!response.ok) { |
47 | const text = await response.text() |
48 | throw new Error(`${response.status} ${text}`) |
49 | } |
50 | return await response.json() |
51 | } |
52 |
|