mirror of
https://gitlab.massbug.com/massbug/judge4c.git
synced 2025-07-04 03:41:16 +00:00
feat(workspaces): add server route for creating workspaces
This commit is contained in:
parent
ada4674997
commit
579025e62d
32
src/features/workspaces/server/route.ts
Normal file
32
src/features/workspaces/server/route.ts
Normal file
@ -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;
|
Loading…
Reference in New Issue
Block a user