Create Brand
One script reply has been approved by the moderators Verified

Allowed for

  • Admins
Created by hugo697 844 days ago
Submitted by hugo697 Typescript (fetch-only)
Verified 298 days ago
1
type Zendesk = {
2
  username: string;
3
  password: string;
4
  subdomain: string;
5
};
6
/**
7
 * Create Brand
8
 * #### Allowed for
9
- Admins
10
 */
11
export async function main(
12
  auth: Zendesk,
13
  body: {
14
    brand?: {
15
      active?: string;
16
      brand_url?: string;
17
      created_at?: string;
18
      default?: string;
19
      has_help_center?: string;
20
      help_center_state?: string;
21
      host_mapping?: string;
22
      id?: string;
23
      is_deleted?: string;
24
      logo?: {
25
        content_type?: string;
26
        content_url?: string;
27
        deleted?: string;
28
        file_name?: string;
29
        height?: string;
30
        id?: string;
31
        inline?: string;
32
        malware_access_override?: string;
33
        malware_scan_result?: string;
34
        mapped_content_url?: string;
35
        size?: string;
36
        thumbnails?: {
37
          content_type?: string;
38
          content_url?: string;
39
          deleted?: string;
40
          file_name?: string;
41
          height?: string;
42
          id?: string;
43
          inline?: string;
44
          malware_access_override?: string;
45
          malware_scan_result?: string;
46
          mapped_content_url?: string;
47
          size?: string;
48
          url?: string;
49
          width?: string;
50
          [k: string]: unknown;
51
        }[];
52
        url?: string;
53
        width?: string;
54
        [k: string]: unknown;
55
      };
56
      name?: string;
57
      signature_template?: string;
58
      subdomain?: string;
59
      ticket_form_ids?: string;
60
      updated_at?: string;
61
      url?: string;
62
      [k: string]: unknown;
63
    };
64
    [k: string]: unknown;
65
  }
66
) {
67
  const url = new URL(`https://${auth.subdomain}.zendesk.com/api/v2/brands`);
68

69
  const response = await fetch(url, {
70
    method: "POST",
71
    headers: {
72
      "Content-Type": "application/json",
73
      Authorization: "Basic " + btoa(`${auth.username}:${auth.password}`),
74
    },
75
    body: JSON.stringify(body),
76
  });
77
  if (!response.ok) {
78
    const text = await response.text();
79
    throw new Error(`${response.status} ${text}`);
80
  }
81
  return await response.json();
82
}
83