//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