//native
type Buttondown = {
token: string;
};
/**
* Create Subscriber
*
*/
export async function main(
auth: Buttondown,
X_Buttondown_Collision_Behavior: string,
body: {
email_address: string;
notes?: string;
metadata?: {};
tags?: string[];
referrer_url?: string;
utm_campaign?: string;
utm_medium?: string;
utm_source?: string;
referring_subscriber_id?: string;
type?:
| "regular"
| "premium"
| "churning"
| "past_due"
| "gifted"
| "unpaid"
| "churned"
| "unactivated"
| "unsubscribed"
| "malformed"
| "complained"
| "undeliverable"
| "spammy"
| "removed"
| "trialed"
| "disabled"
| "paused"
| "disposable";
},
) {
const url = new URL(`https://api.buttondown.com/v1/subscribers`);
const response = await fetch(url, {
method: "POST",
headers: {
"X-Buttondown-Collision-Behavior": X_Buttondown_Collision_Behavior,
"Content-Type": "application/json",
Authorization: "Token " + auth.token,
},
body: JSON.stringify(body),
});
if (!response.ok) {
const text = await response.text();
throw new Error(`${response.status} ${text}`);
}
return await response.json();
}
Submitted by hugo697 428 days ago