30 lines
1.1 KiB
TypeScript
30 lines
1.1 KiB
TypeScript
import "server-only";
|
|
|
|
import { siteUrl } from "@/lib/site-url";
|
|
|
|
export async function notifyPaidTicketDiscord(ticketId: string, amountBaht: number) {
|
|
const webhookUrl = process.env.COMMISSION_DISCORD_WEBHOOK_URL;
|
|
if (!webhookUrl) return;
|
|
|
|
try {
|
|
const response = await fetch(webhookUrl, {
|
|
method: "POST",
|
|
headers: { "Content-Type": "application/json" },
|
|
body: JSON.stringify({
|
|
allowed_mentions: { parse: [] },
|
|
embeds: [{
|
|
title: "มี Ticket คอมมิชชันใหม่ที่ชำระเงินแล้ว",
|
|
url: new URL(`/admin/commission/${ticketId}`, process.env.BETTER_AUTH_URL ?? siteUrl).toString(),
|
|
description: `Ticket #${ticketId.slice(0, 8)} - ฿${amountBaht}`,
|
|
color: 0x57f287,
|
|
timestamp: new Date().toISOString(),
|
|
}],
|
|
}),
|
|
signal: AbortSignal.timeout(5000),
|
|
});
|
|
if (!response.ok) console.error(`Commission Discord notification failed (${response.status})`);
|
|
} catch {
|
|
console.error("Commission Discord notification failed");
|
|
}
|
|
}
|