From 0c5b58e26b1c36f983812737d009a8df506635c6 Mon Sep 17 00:00:00 2001 From: AlexIves16 Date: Tue, 28 Apr 2026 16:33:24 +0500 Subject: [PATCH] fix(git): correct saveCanvasToGitea payload and use prisma --- app/server/api/git/real-sync.post.ts | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/app/server/api/git/real-sync.post.ts b/app/server/api/git/real-sync.post.ts index acd7267..3af3f2a 100644 --- a/app/server/api/git/real-sync.post.ts +++ b/app/server/api/git/real-sync.post.ts @@ -1,6 +1,6 @@ import { requireAuth } from '~/server/utils/auth' import { saveCanvasToGitea, loadCanvasFromGitea } from '~/server/utils/giteaApi' -import { canvases } from '~/server/utils/db' +import { prisma } from '~/server/utils/prisma' export default defineEventHandler(async (event) => { const user = requireAuth(event) @@ -15,7 +15,7 @@ export default defineEventHandler(async (event) => { switch (action) { case 'init': case 'sync': { - const canvas = canvases.get(canvasId) + const canvas = await prisma.canvas.findUnique({ where: { id: canvasId } }) if (!canvas) { throw createError({ statusCode: 404, message: 'Canvas not found' }) } @@ -23,7 +23,8 @@ export default defineEventHandler(async (event) => { throw createError({ statusCode: 403, message: 'Access denied' }) } - const ok = await saveCanvasToGitea(canvasId, canvas, commitMessage) + const opts = { username: user.username, groupId: canvas.groupId, isPublic: canvas.isPublic } + const ok = await saveCanvasToGitea(canvasId, canvas, opts, commitMessage) return { success: ok, message: ok @@ -33,14 +34,21 @@ export default defineEventHandler(async (event) => { } case 'load': { - const gitCanvas = await loadCanvasFromGitea(canvasId) + const existing = await prisma.canvas.findUnique({ where: { id: canvasId } }) + const opts = existing ? { username: user.username, groupId: existing.groupId, isPublic: existing.isPublic } : { username: user.username } + const gitCanvas = await loadCanvasFromGitea(canvasId, opts) if (!gitCanvas) { return { success: false, message: 'Canvas not found in Gitea', needsInit: true } } - const existing = canvases.get(canvasId) if (existing) { - canvases.set(canvasId, { ...existing, nodes: gitCanvas.nodes || [], edges: gitCanvas.edges || [] }) + await prisma.canvas.update({ + where: { id: canvasId }, + data: { + nodes: gitCanvas.nodes || [], + edges: gitCanvas.edges || [] + } + }) } return { success: true, canvas: gitCanvas, message: `Canvas ${canvasId} loaded from Gitea` }