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;