From a60cd67c44b2ed7da5004eaed35230c9f31f1bd7 Mon Sep 17 00:00:00 2001 From: PxlLoewe <72106766+PxlLoewe@users.noreply.github.com> Date: Sun, 1 Feb 2026 00:01:06 +0100 Subject: [PATCH 1/2] Catch Blocks --- apps/core-server/modules/chron.ts | 114 +++++++++--------- apps/core-server/routes/helper.ts | 12 +- apps/core-server/routes/member.ts | 11 +- .../admin/user/[id]/_components/forms.tsx | 9 +- apps/hub/helper/discord.ts | 11 +- 5 files changed, 92 insertions(+), 65 deletions(-) diff --git a/apps/core-server/modules/chron.ts b/apps/core-server/modules/chron.ts index 48692a50..ea3eb3ca 100644 --- a/apps/core-server/modules/chron.ts +++ b/apps/core-server/modules/chron.ts @@ -142,73 +142,77 @@ const removeConnectedAircrafts = async () => { }); }; const removePermissionsForBannedUsers = async () => { - const removePermissionsPenaltys = await prisma.penalty.findMany({ - where: { - removePermissionApplied: false, - User: { - DiscordAccount: { isNot: null }, - }, - }, - include: { - User: { - include: { - DiscordAccount: true, - FormerDiscordAccounts: true, + try { + const removePermissionsPenaltys = await prisma.penalty.findMany({ + where: { + removePermissionApplied: false, + User: { + DiscordAccount: { isNot: null }, }, }, - }, - }); - - const addPermissionsPenaltys = await prisma.penalty.findMany({ - where: { - addPermissionApplied: false, - User: { - DiscordAccount: { isNot: null }, - }, - OR: [{ suspended: true }, { until: { lt: new Date().toISOString() } }], - }, - include: { - User: { - include: { - DiscordAccount: true, - FormerDiscordAccounts: true, + include: { + User: { + include: { + DiscordAccount: true, + FormerDiscordAccounts: true, + }, }, }, - }, - }); + }); - for (const penalty of removePermissionsPenaltys) { - const user = penalty.User; - console.log(`Removing roles for user ${user.id} due to penalty ${penalty.id}`); + const addPermissionsPenaltys = await prisma.penalty.findMany({ + where: { + addPermissionApplied: false, + User: { + DiscordAccount: { isNot: null }, + }, + OR: [{ suspended: true }, { until: { lt: new Date().toISOString() } }], + }, + include: { + User: { + include: { + DiscordAccount: true, + FormerDiscordAccounts: true, + }, + }, + }, + }); - await changeMemberRoles( - user.DiscordAccount!.discordId, - [DISCORD_ROLES.PILOT, DISCORD_ROLES.DISPATCHER], - "remove", - ); + for (const penalty of removePermissionsPenaltys) { + const user = penalty.User; + console.log(`Removing roles for user ${user.id} due to penalty ${penalty.id}`); - for (const formerAccount of user.FormerDiscordAccounts) { await changeMemberRoles( - formerAccount.discordId, + user.DiscordAccount!.discordId, [DISCORD_ROLES.PILOT, DISCORD_ROLES.DISPATCHER], "remove", ); + + for (const formerAccount of user.FormerDiscordAccounts) { + await changeMemberRoles( + formerAccount.discordId, + [DISCORD_ROLES.PILOT, DISCORD_ROLES.DISPATCHER], + "remove", + ); + } + await prisma.penalty.update({ + where: { id: penalty.id }, + data: { removePermissionApplied: true }, + }); } - await prisma.penalty.update({ - where: { id: penalty.id }, - data: { removePermissionApplied: true }, - }); - } - for (const penalty of addPermissionsPenaltys) { - console.log(`Restoring roles for user ${penalty.userId} due to penalty ${penalty.id}`); - await setUserStandardNamePermissions({ - memberId: penalty.User.DiscordAccount!.discordId, - userId: penalty.userId, - }); - await prisma.penalty.update({ - where: { id: penalty.id }, - data: { addPermissionApplied: true }, - }); + for (const penalty of addPermissionsPenaltys) { + console.log(`Restoring roles for user ${penalty.userId} due to penalty ${penalty.id}`); + await setUserStandardNamePermissions({ + memberId: penalty.User.DiscordAccount!.discordId, + userId: penalty.userId, + }); + await prisma.penalty.update({ + where: { id: penalty.id }, + data: { addPermissionApplied: true }, + }); + } + } catch (error) { + console.error("Error removing permissions for banned users:", error); } }; diff --git a/apps/core-server/routes/helper.ts b/apps/core-server/routes/helper.ts index b452b450..94b2d7ed 100644 --- a/apps/core-server/routes/helper.ts +++ b/apps/core-server/routes/helper.ts @@ -66,6 +66,8 @@ export const setUserStandardNamePermissions = async ({ const publicUser = getPublicUser(user); const member = await getMember(memberId); + if (!member) throw new Error("Member not found"); + await member.setNickname(`${publicUser.fullName} - ${user.publicId}`); const isPilot = user.permissions.includes("PILOT"); const isDispatcher = user.permissions.includes("DISPO"); @@ -79,10 +81,14 @@ export const setUserStandardNamePermissions = async ({ }; router.post("/set-standard-name", async (req, res) => { - const { memberId, userId } = req.body; + try { + const { memberId, userId } = req.body; - await setUserStandardNamePermissions({ memberId, userId }); - res.status(200).json({ message: "Standard name and permissions set" }); + await setUserStandardNamePermissions({ memberId, userId }); + res.status(200).json({ message: "Standard name and permissions set" }); + } catch (error) { + res.status(500).json({ error: (error as unknown as Error).message }); + } }); export default router; diff --git a/apps/core-server/routes/member.ts b/apps/core-server/routes/member.ts index cbc5a88c..37ef0d76 100644 --- a/apps/core-server/routes/member.ts +++ b/apps/core-server/routes/member.ts @@ -20,12 +20,12 @@ export const getMember = async (memberId: string) => { try { let member = guild.members.cache.get(memberId); if (!member) { - member = await guild.members.fetch(memberId); + member = await guild.members.fetch(memberId).catch((e) => undefined); } return member; } catch (error) { console.error("Error fetching member:", error); - throw new Error("Member not found"); + return null; } }; @@ -37,6 +37,10 @@ router.post("/rename", async (req: Request, res: Response) => { } try { const member = await getMember(memberId); + if (!member) { + res.status(404).json({ error: "Member not found" }); + return; + } await member.setNickname(newName); console.log(`Member ${member.id} renamed to ${newName}`); res.status(200).json({ message: "Member renamed successfully" }); @@ -52,6 +56,9 @@ export const changeMemberRoles = async ( action: "add" | "remove", ) => { const member = await getMember(memberId); + if (!member) { + throw new Error("Member not found"); + } const currentRoleIds = member.roles.cache.map((role) => role.id); const filteredRoleIds = diff --git a/apps/hub/app/(app)/admin/user/[id]/_components/forms.tsx b/apps/hub/app/(app)/admin/user/[id]/_components/forms.tsx index 486fef70..2aaa3c10 100644 --- a/apps/hub/app/(app)/admin/user/[id]/_components/forms.tsx +++ b/apps/hub/app/(app)/admin/user/[id]/_components/forms.tsx @@ -663,10 +663,15 @@ export const AdminForm = ({ >