Created by aureliejagg29 293 days ago Viewed 53 times 0 Points
No comments yet
import { Resource } from 'https://deno.land/x/windmill@v1.70.1/mod.ts'
import { removeObjectEmptyFields } from 'https://deno.land/x/windmill_helpers@v1.0.0/mod.ts'
/**
* @param members_to_add *(optional)* An array of emails to be used for a static segment.
* Any emails provided that are not present on the list will be ignored.
* A maximum of 500 members can be sent.
*
* @param members_to_remove *(optional)* An array of emails to be used for a static segment.
* Any emails provided that are not present on the list will be ignored.
* A maximum of 500 members can be sent.
*/
export async function main(
auth: Resource<'mailchimp'>,
list_id: string,
segment_id: string,
members_to_add?: string[],
members_to_remove?: string[]
) {
const url = new URL(`https://${auth.server}.api.mailchimp.com/3.0/lists/${list_id}/segments/${segment_id}`)
const body = {
members_to_add,
members_to_remove
}
removeObjectEmptyFields(body, true, false)
if(!Object.keys(body).length) {
return 'No members were declared to be added or removed.'
}
const response = await fetch(url, {
method: 'POST',
headers: {
Authorization: `Bearer ${auth.api_key}`
},
body: JSON.stringify(body)
})
if(!response.ok) {
throw Error(await response.text())
}
return await response.json()
}
No comments yet