From 579025e62d905e1753ee4086d38af664e339cbff Mon Sep 17 00:00:00 2001 From: ngc2207 Date: Mon, 3 Feb 2025 12:12:12 +0800 Subject: [PATCH] feat(workspaces): add server route for creating workspaces --- src/features/workspaces/server/route.ts | 32 +++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 src/features/workspaces/server/route.ts diff --git a/src/features/workspaces/server/route.ts b/src/features/workspaces/server/route.ts new file mode 100644 index 0000000..038eff2 --- /dev/null +++ b/src/features/workspaces/server/route.ts @@ -0,0 +1,32 @@ +import { Hono } from "hono"; +import { ID } from "node-appwrite"; +import { zValidator } from "@hono/zod-validator"; +import { createWorkspaceSchema } from "../schemas"; +import { DATABASE_ID, WORKSPACES_ID } from "@/config"; +import { sessionMiddleware } from "@/lib/session-middleware"; + +const app = new Hono().post( + "/", + zValidator("json", createWorkspaceSchema), + sessionMiddleware, + async (c) => { + const databases = c.get("databases"); + const user = c.get("user"); + + const { name } = c.req.valid("json"); + + const workspace = await databases.createDocument( + DATABASE_ID, + WORKSPACES_ID, + ID.unique(), + { + name, + userId: user.$id, + } + ); + + return c.json({ data: workspace }); + } +); + +export default app;