0

Get List

by
Published Jun 6, 2022
Script mailchimp Verified

The script

Submitted by hugo989 Typescript (fetch-only)
Verified 6 days ago
1
//native
2

3
/**
4
 * @param fields *(optional)* A list of fields to return in the response.
5
 * Reference parameters of sub-objects with dot notation.
6
 *
7
 * @param exclude_fields *(optional)* A list of fields to exclude from the response.
8
 * Reference parameters of sub-objects with dot notation. If both `fields` and `exclude_fields`
9
 * are present, then only `exclude_fields` will be used.
10
 */
11
type Mailchimp = {
12
  api_key: string;
13
  server: string;
14
};
15
export async function main(
16
  auth: Mailchimp,
17
  list_id: string,
18
  fields?: string[],
19
  exclude_fields?: string[],
20
  include_total_contacts?: boolean,
21
) {
22
  const url = new URL(
23
    `https://${auth.server}.api.mailchimp.com/3.0/lists/${list_id}`,
24
  );
25
  const params = {
26
    fields,
27
    exclude_fields,
28
    include_total_contacts,
29
  };
30
  for (const key in params) {
31
    const value = params[<keyof typeof params>key];
32
    if (value) {
33
      url.searchParams.append(
34
        key,
35
        Array.isArray(value) ? value.join(",") : "" + value,
36
      );
37
    }
38
  }
39

40
  const response = await fetch(url, {
41
    method: "GET",
42
    headers: {
43
      Authorization: `Bearer ${auth.api_key}`,
44
    },
45
  });
46

47
  if (!response.ok) {
48
    throw Error(await response.text());
49
  }
50
  return await response.json();
51
}
52

Other submissions
  • Submitted by adam186 Deno
    Created 398 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
      list_id: string,
    16
      fields?: string[],
    17
      exclude_fields?: string[],
    18
      include_total_contacts?: boolean,
    19
    ) {
    20
      const url = new URL(
    21
        `https://${auth.server}.api.mailchimp.com/3.0/lists/${list_id}`,
    22
      );
    23
      const params = {
    24
        fields,
    25
        exclude_fields,
    26
        include_total_contacts,
    27
      };
    28
      for (const key in params) {
    29
        const value = params[<keyof typeof params>key];
    30
        if (value) {
    31
          url.searchParams.append(
    32
            key,
    33
            Array.isArray(value) ? value.join(",") : "" + value,
    34
          );
    35
        }
    36
      }
    37
    
    
    38
      const response = await fetch(url, {
    39
        method: "GET",
    40
        headers: {
    41
          Authorization: `Bearer ${auth.api_key}`,
    42
        },
    43
      });
    44
    
    
    45
      if (!response.ok) {
    46
        throw Error(await response.text());
    47
      }
    48
      return await response.json();
    49
    }
    50