full e2e behavior, nice
This commit is contained in:
@@ -1,6 +1,68 @@
|
||||
import { Hono } from "hono";
|
||||
import { prisma } from "./db/db";
|
||||
import { zValidator } from "@hono/zod-validator";
|
||||
import { z } from "zod";
|
||||
|
||||
const api = new Hono().get("/ping", (c) => c.text("pong"));
|
||||
const api = new Hono()
|
||||
.get("/ping", (c) => c.text("pong"))
|
||||
|
||||
.get("/games", async (c) => {
|
||||
const games = await prisma.game.findMany();
|
||||
return c.json(games);
|
||||
})
|
||||
|
||||
.get(
|
||||
"/instances",
|
||||
zValidator("query", z.object({ game: z.string() })),
|
||||
async (c) => {
|
||||
const { game } = c.req.valid("query");
|
||||
const instances = await prisma.instance.findMany({
|
||||
where: {
|
||||
game: {
|
||||
name: game,
|
||||
},
|
||||
},
|
||||
select: {
|
||||
id: true,
|
||||
},
|
||||
});
|
||||
return c.json(instances);
|
||||
}
|
||||
)
|
||||
|
||||
.get(
|
||||
"/gameState/:gameId",
|
||||
zValidator("param", z.object({ gameId: z.string() })),
|
||||
async (c) => {
|
||||
const { gameId } = c.req.valid("param");
|
||||
const instance = await prisma.instance.findUnique({
|
||||
where: {
|
||||
id: Number(gameId),
|
||||
},
|
||||
});
|
||||
return c.json(instance?.gameState);
|
||||
}
|
||||
)
|
||||
|
||||
.put(
|
||||
"/gameState/:gameId",
|
||||
zValidator("param", z.object({ gameId: z.string() }), (result) => {
|
||||
console.log(JSON.stringify(result, null, 2));
|
||||
}),
|
||||
zValidator("json", z.any()),
|
||||
async (c) => {
|
||||
const { gameId } = c.req.valid("param");
|
||||
const gameState = c.req.valid("json");
|
||||
|
||||
await prisma.instance.update({
|
||||
data: { gameState },
|
||||
where: {
|
||||
id: Number(gameId),
|
||||
},
|
||||
});
|
||||
|
||||
return c.text("", 200);
|
||||
}
|
||||
);
|
||||
export default api;
|
||||
export type ApiType = typeof api;
|
||||
|
||||
Reference in New Issue
Block a user