diff --git a/src/features/workspaces/server/route.ts b/src/features/workspaces/server/route.ts index 0e0d187..cf77dbe 100644 --- a/src/features/workspaces/server/route.ts +++ b/src/features/workspaces/server/route.ts @@ -5,49 +5,60 @@ import { createWorkspaceSchema } from "../schemas"; import { sessionMiddleware } from "@/lib/session-middleware"; import { DATABASE_ID, IMAGES_BUCKET_ID, WORKSPACES_ID } from "@/config"; -const app = new Hono().post( - "/", - zValidator("form", createWorkspaceSchema), - sessionMiddleware, - async (c) => { +const app = new Hono() + .get("/", sessionMiddleware, async (c) => { const databases = c.get("databases"); - const storage = c.get("storage"); - const user = c.get("user"); - const { name, image } = c.req.valid("form"); - - let uploadImageUrl: string | undefined; - - if (image instanceof File) { - const file = await storage.createFile( - IMAGES_BUCKET_ID, - ID.unique(), - image - ); - - const arrayBuffer = await storage.getFilePreview( - IMAGES_BUCKET_ID, - file.$id - ); - - uploadImageUrl = `data:image/png;base64,${Buffer.from( - arrayBuffer - ).toString("base64")}`; - } - - const workspace = await databases.createDocument( + const workspaces = await databases.listDocuments( DATABASE_ID, - WORKSPACES_ID, - ID.unique(), - { - name, - userId: user.$id, - imageUrl: uploadImageUrl, - } + WORKSPACES_ID ); - return c.json({ data: workspace }); - } -); + return c.json({ data: workspaces }); + }) + .post( + "/", + zValidator("form", createWorkspaceSchema), + sessionMiddleware, + async (c) => { + const databases = c.get("databases"); + const storage = c.get("storage"); + const user = c.get("user"); + + const { name, image } = c.req.valid("form"); + + let uploadImageUrl: string | undefined; + + if (image instanceof File) { + const file = await storage.createFile( + IMAGES_BUCKET_ID, + ID.unique(), + image + ); + + const arrayBuffer = await storage.getFilePreview( + IMAGES_BUCKET_ID, + file.$id + ); + + uploadImageUrl = `data:image/png;base64,${Buffer.from( + arrayBuffer + ).toString("base64")}`; + } + + const workspace = await databases.createDocument( + DATABASE_ID, + WORKSPACES_ID, + ID.unique(), + { + name, + userId: user.$id, + imageUrl: uploadImageUrl, + } + ); + + return c.json({ data: workspace }); + } + ); export default app;