45 lines
1.0 KiB
TypeScript

import { usePrisma } from "../../utils/prisma";
export default defineEventHandler(async (event) => {
const user = await requireUser(event);
const query = getQuery(event);
const opponentId = query.opponentId as string | undefined;
const limit = Math.min(Number(query.limit) || 10, 50);
const db = usePrisma();
const where = opponentId
? {
OR: [
{ challengerId: user.id, opponentId },
{ challengerId: opponentId, opponentId: user.id },
],
status: "FINISHED" as const,
}
: {
OR: [
{ challengerId: user.id },
{ opponentId: user.id },
],
status: "FINISHED" as const,
};
const games = await db.gameChallenge.findMany({
where,
orderBy: { updatedAt: "desc" },
take: limit,
select: {
id: true,
challengerId: true,
challengerName: true,
opponentId: true,
opponentName: true,
winner: true,
createdAt: true,
updatedAt: true,
},
});
return games;
});