Move some events team stuff to prisma
All checks were successful
Test, Build, Deploy / Test, Build, and Deploy (push) Successful in 54s
Test, Build, Deploy / Create Sentry Release (push) Successful in 6s

This commit is contained in:
2026-04-11 03:16:58 -04:00
parent 95ab13775b
commit 465bb30966
3 changed files with 45 additions and 41 deletions

View File

@@ -42,20 +42,16 @@ export async function loader({ context }: { context: RequestContext }) {
status: 403, status: 403,
}); });
const etData = await context.env.D1.prepare( const etData = await context.data.prisma.etMember.findMany({
"SELECT id, name, points, roblox_id FROM et_members;", select: {
).all(); id: true,
name: true,
points: true,
roblox_id: true,
},
});
if (etData.error) return { members: etData };
throw new Response(null, {
status: 500,
});
const members = etData.results as { [k: string]: any }[];
return { members } as {
members: { [k: string]: any }[];
};
} }
export default function () { export default function () {

View File

@@ -45,15 +45,15 @@ export async function loader({
status: 403, status: 403,
}); });
const strikeData = await context.env.D1.prepare( const strikes = await context.data.prisma.etStrike.findMany({
"SELECT * FROM et_strikes WHERE user = ?;", where: {
) user: params.uid,
.bind(params.uid) },
.all(); });
return { return {
can_manage: Boolean([1 << 4, 1 << 12].find((p) => user.permissions & p)), can_manage: Boolean([1 << 4, 1 << 12].find((p) => user.permissions & p)),
strikes: strikeData.results, strikes,
user: params.uid, user: params.uid,
}; };
} }

View File

@@ -30,6 +30,7 @@ import { useLoaderData } from "@remix-run/react";
import { useState } from "react"; import { useState } from "react";
import calendarStyles from "react-big-calendar/lib/css/react-big-calendar.css"; import calendarStyles from "react-big-calendar/lib/css/react-big-calendar.css";
import { type LinksFunction } from "@remix-run/cloudflare"; import { type LinksFunction } from "@remix-run/cloudflare";
import { EtMember } from "../../generated/prisma/client.js";
export const links: LinksFunction = () => { export const links: LinksFunction = () => {
return [{ href: calendarStyles, rel: "stylesheet" }]; return [{ href: calendarStyles, rel: "stylesheet" }];
@@ -51,34 +52,41 @@ export async function loader({ context }: { context: RequestContext }) {
}); });
const now = new Date(); const now = new Date();
const monthEventList = await context.env.D1.prepare( const { prisma } = context.data;
"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;", const monthEventList = await prisma.event.findMany({
) orderBy: {
.bind(now.getUTCMonth() + 1, now.getUTCFullYear()) day: "asc",
.all(); },
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) const membersList = await prisma.$queryRaw<
throw new Response(null, { EtMember[]
status: 500, >`SELECT id, name FROM et_members WHERE id IN (SELECT created_by FROM events WHERE month = ${now.getUTCMonth() + 1} AND year = ${now.getUTCFullYear()});`;
});
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,
});
return { return {
can_approve: Boolean( can_approve: Boolean(
[1 << 4, 1 << 12].find((p) => context.data.current_user.permissions & p), [1 << 4, 1 << 12].find((p) => context.data.current_user.permissions & p),
), ),
events: monthEventList.results, events: monthEventList,
members: membersList.results as { id: string; name: string }[], members: membersList,
user_id: context.data.current_user.id as string, user_id: context.data.current_user.id as string,
}; };
} }