//native
type Buttondown = {
token: string;
};
/**
* Update Webhook
*
*/
export async function main(
auth: Buttondown,
id: string,
body: {
status?: "enabled" | "disabled";
event_types:
| "subscriber.created"
| "subscriber.unsubscribed"
| "subscriber.changed_email"
| "subscriber.confirmed"
| "subscriber.trial_started"
| "subscriber.trial_ended"
| "subscriber.type.changed"
| "subscriber.tags.changed"
| "subscriber.clicked"
| "subscriber.opened"
| "subscriber.paid"
| "subscriber.churned"
| "subscriber.updated"
| "subscriber.deleted"
| "subscriber.viewed_checkout_page"
| "subscriber.replied"
| "subscriber.paused"
| "subscriber.resumed"
| "subscriber.responded_to_survey"
| "subscriber.referred"
| "subscriber.referred.paid"
| "subscriber.commented"
| "email.created"
| "email.sent"
| "email.updated"
| "email.deleted"
| "email.status.changed"
| "scheduled_email.converted"
| "mention.created"
| "advertising_slot.purchased"
| "social_mention.created"
| "export.created"
| "export.completed"
| "export.failed"
| "automation.invoked"
| "stripe.checkout.session.completed"
| "stripe.subscription.activated"
| "stripe.subscription.churning"
| "stripe.subscription.deactivated"
| "stripe.customer.updated"
| "memberful.subscription.created"
| "memberful.subscription.deleted"
| "memberful.member.updated"[];
url: string;
description?: string;
},
) {
const url = new URL(`https://api.buttondown.com/v1/webhooks/${id}`);
const response = await fetch(url, {
method: "PATCH",
headers: {
"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