59 lines
1.5 KiB
TypeScript

export async function onRequestPost(context: RequestContext) {
const { appeal } = context.data;
const body = new FormData();
body.append("from", "noreply@mail.carcrushers.cc");
body.append("to", appeal.email);
body.append("subject", "Appeal Denied");
body.append("template", "appeal_denied");
body.append("v:note", context.data.body.feedback || "No note provided.");
const emailReq = await fetch(
"https://api.mailgun.net/v3/mail.carcrushers.cc/messages",
{
body,
headers: {
authorization: `Basic ${btoa("api:" + context.env.MAILGUN_API_KEY)}`,
},
method: "POST",
}
);
if (!emailReq.ok) {
console.log(await emailReq.json());
return new Response('{"error":"Failed to deny appeal"}', {
headers: {
"content-type": "application/json",
},
status: 500,
});
}
const { current_user: currentUser } = context.data;
await fetch(context.env.APPEALS_WEBHOOK, {
body: JSON.stringify({
embeds: [
{
title: "Appeal Denied",
color: 0xff0000,
description: `Appeal from user ${appeal.username}#${appeal.discriminator} (${appeal.id}) was denied.`,
fields: [
{
name: "Moderator",
value: `${currentUser.username}#${currentUser.discriminator} (${currentUser.id})`,
},
],
},
],
}),
headers: {
"content-type": "application/json",
},
method: "POST",
});
return new Response(null, {
status: 204,
});
}