import { requireAuth } from '~/server/utils/auth' import { saveCanvasToGitea } from '~/server/utils/giteaApi' import { canvases } from '~/server/utils/db' export default defineEventHandler(async (event) => { const user = requireAuth(event) const body = await readBody(event) const { canvasId, autoSync = true } = body if (!canvasId) { throw createError({ statusCode: 400, message: 'Canvas ID is required' }) } // Check if canvas exists and user has access const canvas = canvases.get(canvasId) if (!canvas) { throw createError({ statusCode: 404, message: 'Canvas not found' }) } // Check permissions if (canvas.ownerId !== user.id && !canvas.isPublic) { throw createError({ statusCode: 403, message: 'Access denied' }) } try { const ok = await saveCanvasToGitea(canvasId, canvas, `Auto-sync: ${canvas.name}`) return { success: ok, message: ok ? 'Canvas synchronized with Gitea' : 'Gitea sync failed', autoSyncEnabled: autoSync } } catch (error) { console.error('Failed to sync canvas to Gitea:', error) throw createError({ statusCode: 500, message: 'Failed to sync canvas to Gitea' }) } })