Files
nodes/store/src/routes/user/user.controller.ts
Max Richter eadd37bfa4
Some checks failed
Deploy to GitHub Pages / build_site (push) Has been cancelled
feat: some shit
2024-12-20 12:21:46 +01:00

56 lines
1.3 KiB
TypeScript

import { createRoute, OpenAPIHono, z } from "@hono/zod-openapi";
import { usersTable } from "./user.schema.ts";
import { db } from "../../db/db.ts";
import { findUserByName } from "./user.service.ts";
import { UserSchema } from "./user.validation.ts";
const userRouter = new OpenAPIHono();
const getAllUsersRoute = createRoute({
method: "get",
path: "/users.json",
responses: {
200: {
content: {
"application/json": {
schema: z.array(UserSchema),
},
},
description: "Retrieve a single node definition",
},
},
});
userRouter.openapi(getAllUsersRoute, async (c) => {
const users = await db.select().from(usersTable);
return c.json(users);
});
const getSingleUserRoute = createRoute({
method: "get",
path: "/{userId}.json",
request: {
params: z.object({ userId: z.string().optional() }),
},
responses: {
200: {
content: {
"application/json": {
schema: UserSchema,
},
},
description: "Retrieve a single node definition",
},
},
});
userRouter.openapi(getSingleUserRoute, async (c) => {
const userId = c.req.param("userId.json");
const user = await findUserByName(userId.replace(/\.json$/, ""));
return c.json(user);
});
export { userRouter };