import { prisma } from "./db/db"; import { Elysia, t } from "elysia"; import { Prisma } from "@prisma/client"; const api = new Elysia({ prefix: "/api" }) // [wip] .group("/prisma", (app) => app .post("/game", ({ body }: { body: Prisma.GameFindManyArgs }) => prisma.game.findMany(body) ) .post( "/instance", ({ body }: { body: Prisma.InstanceFindManyArgs }) => prisma.instance.findMany(body) ) ) .get("/games", () => prisma.game.findMany()) .get("/instances", ({ query: { game } }) => prisma.instance.findMany({ where: { game: { name: game, }, }, select: { id: true, }, }) ) .get("/gameState/:gameId", ({ params: { gameId } }) => prisma.instance .findUnique({ where: { id: Number(gameId), }, }) .then((game) => game?.gameState) ) .put( "/gameState/:gameId", ({ params: { gameId }, body: { gameState } }) => prisma.instance.update({ data: { gameState }, where: { id: Number(gameId), }, }), { body: t.Object({ gameState: t.Any(), }), } ); export default api; export type Api = typeof api;