Edits history of script submission #22438 for ' Get Campaign (mailchimp)'

  • bunnative
    One script reply has been approved by the moderators
    Ap­pro­ved
    //native
    
    /**
     * @param fields *(optional)* A list of fields to return in the response.
     * Reference parameters of sub-objects with dot notation.
     *
     * @param exclude_fields *(optional)* A list of fields to exclude from the response.
     * Reference parameters of sub-objects with dot notation. If both `fields` and `exclude_fields`
     * are present, then only `exclude_fields` will be used.
     */
    type Mailchimp = {
      api_key: string;
      server: string;
    };
    export async function main(
      auth: Mailchimp,
      campaign_id: string,
      fields?: string[],
      exclude_fields?: string[],
    ) {
      let url = `https://${auth.server}.api.mailchimp.com/3.0/campaigns/${campaign_id}?`;
      if (fields?.length) {
        url += `fields=${fields.join(",")}`;
      }
      if (exclude_fields?.length) {
        url += `${fields?.length ? "&" : ""}exclude_fields=${exclude_fields.join(
          ",",
        )}`;
      }
    
      const response = await fetch(url, {
        method: "GET",
        headers: {
          Authorization: `Bearer ${auth.api_key}`,
        },
      });
    
      if (!response.ok) {
        throw Error(await response.text());
      }
      return await response.json();
    }
    

    Submitted by hugo989 6 days ago