0
Get Campaign
One script reply has been approved by the moderators Verified
Created by rubenmestwet 679 days ago Viewed 3897 times
0
Submitted by adam186 Deno
Verified 504 days ago
1
/**
2
 * @param fields *(optional)* A list of fields to return in the response.
3
 * Reference parameters of sub-objects with dot notation.
4
 *
5
 * @param exclude_fields *(optional)* A list of fields to exclude from the response.
6
 * Reference parameters of sub-objects with dot notation. If both `fields` and `exclude_fields`
7
 * are present, then only `exclude_fields` will be used.
8
 */
9
type Mailchimp = {
10
  api_key: string;
11
  server: string;
12
};
13
export async function main(
14
  auth: Mailchimp,
15
  campaign_id: string,
16
  fields?: string[],
17
  exclude_fields?: string[],
18
) {
19
  let url = `https://${auth.server}.api.mailchimp.com/3.0/campaigns/${campaign_id}?`;
20
  if (fields?.length) {
21
    url += `fields=${fields.join(",")}`;
22
  }
23
  if (exclude_fields?.length) {
24
    url += `${fields?.length ? "&" : ""}exclude_fields=${exclude_fields.join(
25
      ",",
26
    )}`;
27
  }
28

29
  const response = await fetch(url, {
30
    method: "GET",
31
    headers: {
32
      Authorization: `Bearer ${auth.api_key}`,
33
    },
34
  });
35

36
  if (!response.ok) {
37
    throw Error(await response.text());
38
  }
39
  return await response.json();
40
}
41