From 210118bf4d8becbb89ab5efc9c84064713168eb3 Mon Sep 17 00:00:00 2001 From: Jorge Vargas Date: Fri, 21 Mar 2025 14:19:27 -0600 Subject: [PATCH 1/4] Error handling on donator check page --- messages/en.json | 4 +++- src/pages/donator/check.astro | 7 +++++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/messages/en.json b/messages/en.json index 97dbcd9..c400032 100644 --- a/messages/en.json +++ b/messages/en.json @@ -73,5 +73,7 @@ "alreadyDonator": "You are already a donator!", "discordNeeded": "You need to link your Discord account to access this page", "discordRoleNeeded": "You need the Donator Discord role to access this page", - "addedDonator": "Added donator benefits to your account!" + "addedDonator": "Added donator benefits to your account!", + "errorDonatorCheck": "Something went wrong when checking your Discord donator status. Please try again later.", + "discordRateLimit": "{message} Retry after {retry_after} seconds." } diff --git a/src/pages/donator/check.astro b/src/pages/donator/check.astro index 8d085db..63ca968 100644 --- a/src/pages/donator/check.astro +++ b/src/pages/donator/check.astro @@ -29,6 +29,13 @@ async function getMessage() { } }) + if (memberInfoRes.status == 429) { + const { message, retry_after }: { message: string; retry_after: number } = await memberInfoRes.json() + return m.discordRateLimit({ message, retry_after }) + } else if (memberInfoRes.status != 200) { + return m.errorDonatorCheck + } + const memberInfo: { roles: string[] } = await memberInfoRes.json() const isDiscordDonator = memberInfo.roles.includes(DISCORD_DONATOR_ID) From 24fb8f2b7d58a69b963e87990d83c3ef43ff67e7 Mon Sep 17 00:00:00 2001 From: Jorge Vargas Date: Fri, 21 Mar 2025 15:24:29 -0600 Subject: [PATCH 2/4] Add debug details to Discord API errors --- messages/en.json | 2 +- src/pages/donator/check.astro | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/messages/en.json b/messages/en.json index c400032..0e3e919 100644 --- a/messages/en.json +++ b/messages/en.json @@ -74,6 +74,6 @@ "discordNeeded": "You need to link your Discord account to access this page", "discordRoleNeeded": "You need the Donator Discord role to access this page", "addedDonator": "Added donator benefits to your account!", - "errorDonatorCheck": "Something went wrong when checking your Discord donator status. Please try again later.", + "errorDonatorCheck": "Something went wrong when checking your Discord donator status. Please try again later. {error}", "discordRateLimit": "{message} Retry after {retry_after} seconds." } diff --git a/src/pages/donator/check.astro b/src/pages/donator/check.astro index 63ca968..20b1621 100644 --- a/src/pages/donator/check.astro +++ b/src/pages/donator/check.astro @@ -33,7 +33,7 @@ async function getMessage() { const { message, retry_after }: { message: string; retry_after: number } = await memberInfoRes.json() return m.discordRateLimit({ message, retry_after }) } else if (memberInfoRes.status != 200) { - return m.errorDonatorCheck + return m.errorDonatorCheck({ error: await memberInfoRes.json() }) } const memberInfo: { roles: string[] } = await memberInfoRes.json() From 0c98097abcd8704f809556ad27d91b1c96bee0e3 Mon Sep 17 00:00:00 2001 From: Jorge Vargas Date: Fri, 21 Mar 2025 15:25:31 -0600 Subject: [PATCH 3/4] Add correct Discord Guild ID --- src/pages/donator/check.astro | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/pages/donator/check.astro b/src/pages/donator/check.astro index 20b1621..758e5d4 100644 --- a/src/pages/donator/check.astro +++ b/src/pages/donator/check.astro @@ -1,6 +1,6 @@ --- import * as m from 'paraglide/messages' -import { DISCORD_DONATOR_ID } from 'astro:env/server' +import { DISCORD_DONATOR_ID, DISCORD_GUILD_ID } from 'astro:env/server' import prismaClient from 'utils/prisma-client' const { session, user, roles } = Astro.locals @@ -22,7 +22,7 @@ async function getMessage() { return m.discordNeeded() } - const memberInfoRes = await fetch(`https://discord.com/api/users/@me/guilds/535484312124915714/member`, { + const memberInfoRes = await fetch(`https://discord.com/api/users/@me/guilds/${DISCORD_GUILD_ID}/member`, { headers: { Authorization: `Bearer ${discordAcc.accessToken}`, 'Content-Type': 'application/x-www-form-urlencoded' From 6e0204bc4999fe4825c2124f3659212755be6412 Mon Sep 17 00:00:00 2001 From: Jorge Vargas Date: Fri, 21 Mar 2025 15:32:51 -0600 Subject: [PATCH 4/4] Add layout to donator check page --- src/pages/donator/check.astro | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/pages/donator/check.astro b/src/pages/donator/check.astro index 758e5d4..4c407bf 100644 --- a/src/pages/donator/check.astro +++ b/src/pages/donator/check.astro @@ -3,6 +3,8 @@ import * as m from 'paraglide/messages' import { DISCORD_DONATOR_ID, DISCORD_GUILD_ID } from 'astro:env/server' import prismaClient from 'utils/prisma-client' +import BaseLayout from 'layouts/base.astro' + const { session, user, roles } = Astro.locals async function getMessage() { @@ -50,4 +52,6 @@ async function getMessage() { const message = await getMessage() --- -
{message}
+ +
{message}
+