mirror of
https://gitlab.massbug.com/massbug/judge4c.git
synced 2025-07-04 15:01:17 +00:00
33 lines
767 B
TypeScript
33 lines
767 B
TypeScript
|
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;
|