Search Lists ( mailchimp)
One script reply has been approved by the moderators Verified

Created by saskiacimex 290 days ago Viewed 56 times 0 Points

No comments yet

Login to be able to comment
Points: 0
deno
One script reply has been approved by the moderators
Ap­pro­ved
import { Resource } from 'https://deno.land/x/windmill@v1.70.1/mod.ts'

/**
 * @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.
 * 
 * @param before_date_created *(optional)* Uses ISO 8601 time format: `2022-10-21T15:41:36+00:00`.
 * @param since_date_created *(optional)* Uses ISO 8601 time format: `2022-10-21T15:41:36+00:00`.
 * @param before_campaign_last_sent *(optional)* Uses ISO 8601 time format: `2022-10-21T15:41:36+00:00`.
 * @param since_campaign_last_sent *(optional)* Uses ISO 8601 time format: `2022-10-21T15:41:36+00:00`.
 */
export async function main(
  auth: Resource<'mailchimp'>,
  fields?: string[],
  exclude_fields?: string[],
  count?: number,
  offset?: number,
  sort_dir?: '' | 'ASC' | 'DESC',
  before_date_created?: string,
  since_date_created?: string,
  before_campaign_last_sent?: string,
  since_campaign_last_sent?: string,
  email?: string,
  sort_field?: '' | 'date_created',
  has_ecommerce_store?: boolean,
  include_total_contacts?: boolean,
) {
  const url = new URL(`https://${auth.server}.api.mailchimp.com/3.0/lists`)
  const params = {
    fields,
    exclude_fields,
    count,
    offset,
    sort_dir,
    before_date_created,
    since_date_created,
    before_campaign_last_sent,
    since_campaign_last_sent,
    email,
    sort_field,
    has_ecommerce_store,
    include_total_contacts
  }
  for(const key in params) {
    const value = params[<keyof typeof params>key]
    if(value) {
      url.searchParams.append(key, Array.isArray(value) ? value.join(',') : '' + value)
    }
  }

  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 adam186 115 days ago

Edited 23 days ago

No comments yet

Login to be able to comment