fix(git): correct saveCanvasToGitea payload and use prisma
This commit is contained in:
@@ -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` }
|
||||
|
||||
Reference in New Issue
Block a user