From ffc4dcf8f58164c7dc068a22357234616795eb2a Mon Sep 17 00:00:00 2001
From: bytedream <bytedream@protonmail.com>
Date: Thu, 5 Dec 2024 22:36:03 +0100
Subject: [PATCH] do not fail when webhook endpoint doesn't exist

---
 src/lib/server/webhook.ts           | 22 +++++++++++++---------
 src/routes/admin/reports/+server.ts |  8 ++++++--
 2 files changed, 19 insertions(+), 11 deletions(-)

diff --git a/src/lib/server/webhook.ts b/src/lib/server/webhook.ts
index f2b7d67..d180d2b 100644
--- a/src/lib/server/webhook.ts
+++ b/src/lib/server/webhook.ts
@@ -1,11 +1,15 @@
 export async function webhookUserReported(endpoint: string, uuid: string) {
-	await fetch(endpoint, {
-		method: 'POST',
-		headers: {
-			'Content-Type': 'application/json'
-		},
-		body: JSON.stringify({
-			user: uuid
-		})
-	});
+	try {
+		await fetch(endpoint, {
+			method: 'POST',
+			headers: {
+				'Content-Type': 'application/json'
+			},
+			body: JSON.stringify({
+				user: uuid
+			})
+		});
+	} catch (e) {
+		throw (e as { message: string }).message;
+	}
 }
diff --git a/src/routes/admin/reports/+server.ts b/src/routes/admin/reports/+server.ts
index 560dd7b..9f8e23f 100644
--- a/src/routes/admin/reports/+server.ts
+++ b/src/routes/admin/reports/+server.ts
@@ -153,8 +153,12 @@ export const PATCH = (async ({ request, cookies }) => {
 
 	if (webhookTriggerUsers.length > 0 && data.status == 'reviewed' && env.REPORTED_WEBHOOK) {
 		for (const webhookTriggerUser of webhookTriggerUsers) {
-			// no `await` to avoid blocking
-			webhookUserReported(env.REPORTED_WEBHOOK, webhookTriggerUser);
+			try {
+				// no `await` to avoid blocking
+				webhookUserReported(env.REPORTED_WEBHOOK, webhookTriggerUser);
+			} catch (e) {
+				console.error(`failed to send reported webhook: ${e}`);
+			}
 		}
 	}