fix(git): correct saveCanvasToGitea payload and use prisma

This commit is contained in:
2026-04-28 16:33:24 +05:00
parent f933c17a90
commit 0c5b58e26b
+14 -6
View File
@@ -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` }