diff --git a/packages/client/src/components/Game.tsx b/packages/client/src/components/Game.tsx index 92aa74d..5dc9d85 100644 --- a/packages/client/src/components/Game.tsx +++ b/packages/client/src/components/Game.tsx @@ -10,31 +10,33 @@ export const GameContext = createContext<{ }>(); export default (props: { instanceId: number }) => { - const [gameState, { refetch }] = createResource(() => + const [gameState, { refetch, mutate }] = createResource(() => api .gameState({ gameId: props.instanceId.toString() }) .get() .then((res) => res.data as GameState) ); - const setGameState = (state: GameState) => - api + const setGameState = (state: GameState) => { + mutate(state); + return api .gameState({ gameId: props.instanceId.toString() }) .put({ gameState: state, }) .then(refetch); + }; return ( - +
{ const [drawn, ...rest] = gameState()!.deck; @@ -45,7 +47,7 @@ export default (props: { instanceId: number }) => { }} />
- +
diff --git a/packages/server/src/api.ts b/packages/server/src/api.ts index dd7a597..4354a28 100644 --- a/packages/server/src/api.ts +++ b/packages/server/src/api.ts @@ -1,7 +1,21 @@ 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 } }) =>