From 465bb30966475cfa21196793e5da9544e8cb70ba Mon Sep 17 00:00:00 2001 From: Regalijan Date: Sat, 11 Apr 2026 03:16:58 -0400 Subject: [PATCH] Move some events team stuff to prisma --- app/routes/et-members.tsx | 22 ++++------ app/routes/et-members_.strikes_.$uid.tsx | 12 +++--- app/routes/events-team.tsx | 52 ++++++++++++++---------- 3 files changed, 45 insertions(+), 41 deletions(-) diff --git a/app/routes/et-members.tsx b/app/routes/et-members.tsx index 76a7d7b..bd8cf75 100644 --- a/app/routes/et-members.tsx +++ b/app/routes/et-members.tsx @@ -42,20 +42,16 @@ export async function loader({ context }: { context: RequestContext }) { status: 403, }); - const etData = await context.env.D1.prepare( - "SELECT id, name, points, roblox_id FROM et_members;", - ).all(); + const etData = await context.data.prisma.etMember.findMany({ + select: { + id: true, + name: true, + points: true, + roblox_id: true, + }, + }); - if (etData.error) - throw new Response(null, { - status: 500, - }); - - const members = etData.results as { [k: string]: any }[]; - - return { members } as { - members: { [k: string]: any }[]; - }; + return { members: etData }; } export default function () { diff --git a/app/routes/et-members_.strikes_.$uid.tsx b/app/routes/et-members_.strikes_.$uid.tsx index 7a3a833..fea7fce 100644 --- a/app/routes/et-members_.strikes_.$uid.tsx +++ b/app/routes/et-members_.strikes_.$uid.tsx @@ -45,15 +45,15 @@ export async function loader({ status: 403, }); - const strikeData = await context.env.D1.prepare( - "SELECT * FROM et_strikes WHERE user = ?;", - ) - .bind(params.uid) - .all(); + const strikes = await context.data.prisma.etStrike.findMany({ + where: { + user: params.uid, + }, + }); return { can_manage: Boolean([1 << 4, 1 << 12].find((p) => user.permissions & p)), - strikes: strikeData.results, + strikes, user: params.uid, }; } diff --git a/app/routes/events-team.tsx b/app/routes/events-team.tsx index 5427c8f..56c430a 100644 --- a/app/routes/events-team.tsx +++ b/app/routes/events-team.tsx @@ -30,6 +30,7 @@ import { useLoaderData } from "@remix-run/react"; import { useState } from "react"; import calendarStyles from "react-big-calendar/lib/css/react-big-calendar.css"; import { type LinksFunction } from "@remix-run/cloudflare"; +import { EtMember } from "../../generated/prisma/client.js"; export const links: LinksFunction = () => { return [{ href: calendarStyles, rel: "stylesheet" }]; @@ -51,34 +52,41 @@ export async function loader({ context }: { context: RequestContext }) { }); const now = new Date(); - const monthEventList = await context.env.D1.prepare( - "SELECT answer, approved, created_by, day, details, id, month, pending, performed_at, reached_minimum_player_count, type, year FROM events WHERE month = ? AND year = ? ORDER BY day ASC;", - ) - .bind(now.getUTCMonth() + 1, now.getUTCFullYear()) - .all(); + const { prisma } = context.data; + const monthEventList = await prisma.event.findMany({ + orderBy: { + day: "asc", + }, + select: { + answer: true, + approved: true, + created_by: true, + day: true, + details: true, + id: true, + month: true, + pending: true, + performed_at: true, + reached_minimum_player_count: true, + type: true, + year: true, + }, + where: { + month: now.getUTCMonth() + 1, + year: now.getUTCFullYear(), + }, + }); - if (monthEventList.error) - throw new Response(null, { - status: 500, - }); - - const membersList = await context.env.D1.prepare( - "SELECT id, name FROM et_members WHERE id IN (SELECT created_by FROM events WHERE month = ? AND year = ?);", - ) - .bind(now.getUTCMonth() + 1, now.getUTCFullYear()) - .all(); - - if (membersList.error) - throw new Response(null, { - status: 500, - }); + const membersList = await prisma.$queryRaw< + EtMember[] + >`SELECT id, name FROM et_members WHERE id IN (SELECT created_by FROM events WHERE month = ${now.getUTCMonth() + 1} AND year = ${now.getUTCFullYear()});`; return { can_approve: Boolean( [1 << 4, 1 << 12].find((p) => context.data.current_user.permissions & p), ), - events: monthEventList.results, - members: membersList.results as { id: string; name: string }[], + events: monthEventList, + members: membersList, user_id: context.data.current_user.id as string, }; }