0
List Views
One script reply has been approved by the moderators Verified

Lists shared and personal views available to the current user.

Created by hugo697 556 days ago Viewed 22282 times
0
Submitted by hugo697 Typescript (fetch-only)
Verified 556 days ago
1
type Zendesk = {
2
  username: string;
3
  password: string;
4
  subdomain: string;
5
};
6
/**
7
 * List Views
8
 * Lists shared and personal views available to the current user.
9
 */
10
export async function main(
11
  auth: Zendesk,
12
  access: string | undefined,
13
  active: string | undefined,
14
  group_id: string | undefined,
15
  sort_by: string | undefined,
16
  sort_order: string | undefined
17
) {
18
  const url = new URL(`https://${auth.subdomain}.zendesk.com/api/v2/views`);
19
  for (const [k, v] of [
20
    ["access", access],
21
    ["active", active],
22
    ["group_id", group_id],
23
    ["sort_by", sort_by],
24
    ["sort_order", sort_order],
25
  ]) {
26
    if (v !== undefined && v !== "") {
27
      url.searchParams.append(k, v);
28
    }
29
  }
30
  const response = await fetch(url, {
31
    method: "GET",
32
    headers: {
33
      Authorization: "Basic " + btoa(`${auth.username}:${auth.password}`),
34
    },
35
    body: undefined,
36
  });
37
  if (!response.ok) {
38
    const text = await response.text();
39
    throw new Error(`${response.status} ${text}`);
40
  }
41
  return await response.json();
42
}
43