import { requireAuth } from '~/server/utils/auth' import { canvases, userGroups } from '~/server/utils/db' export default defineEventHandler(async (event) => { const user = requireAuth(event) // Get all canvases the user can access const userGroupIds = Array.from(userGroups.values()) .filter(membership => membership.userId === user.id) .map(membership => membership.groupId) const accessibleCanvases = Array.from(canvases.values()).filter(canvas => { // User can see their own canvases if (canvas.ownerId === user.id) return true // User can see public canvases if (canvas.isPublic) return true // User can see group canvases they're a member of if (canvas.groupId && userGroupIds.includes(canvas.groupId)) return true return false }) const canvasList = accessibleCanvases.map(canvas => ({ id: canvas.id, name: canvas.name, ownerId: canvas.ownerId, createdAt: canvas.createdAt, updatedAt: canvas.updatedAt, isPublic: canvas.isPublic, groupId: canvas.groupId, nodeCount: canvas.nodes.length })) return { canvases: canvasList } })