fix(git): correct saveCanvasToGitea payload and use prisma
This commit is contained in:
@@ -1,6 +1,6 @@
|
|||||||
import { requireAuth } from '~/server/utils/auth'
|
import { requireAuth } from '~/server/utils/auth'
|
||||||
import { saveCanvasToGitea, loadCanvasFromGitea } from '~/server/utils/giteaApi'
|
import { saveCanvasToGitea, loadCanvasFromGitea } from '~/server/utils/giteaApi'
|
||||||
import { canvases } from '~/server/utils/db'
|
import { prisma } from '~/server/utils/prisma'
|
||||||
|
|
||||||
export default defineEventHandler(async (event) => {
|
export default defineEventHandler(async (event) => {
|
||||||
const user = requireAuth(event)
|
const user = requireAuth(event)
|
||||||
@@ -15,7 +15,7 @@ export default defineEventHandler(async (event) => {
|
|||||||
switch (action) {
|
switch (action) {
|
||||||
case 'init':
|
case 'init':
|
||||||
case 'sync': {
|
case 'sync': {
|
||||||
const canvas = canvases.get(canvasId)
|
const canvas = await prisma.canvas.findUnique({ where: { id: canvasId } })
|
||||||
if (!canvas) {
|
if (!canvas) {
|
||||||
throw createError({ statusCode: 404, message: 'Canvas not found' })
|
throw createError({ statusCode: 404, message: 'Canvas not found' })
|
||||||
}
|
}
|
||||||
@@ -23,7 +23,8 @@ export default defineEventHandler(async (event) => {
|
|||||||
throw createError({ statusCode: 403, message: 'Access denied' })
|
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 {
|
return {
|
||||||
success: ok,
|
success: ok,
|
||||||
message: ok
|
message: ok
|
||||||
@@ -33,14 +34,21 @@ export default defineEventHandler(async (event) => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
case 'load': {
|
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) {
|
if (!gitCanvas) {
|
||||||
return { success: false, message: 'Canvas not found in Gitea', needsInit: true }
|
return { success: false, message: 'Canvas not found in Gitea', needsInit: true }
|
||||||
}
|
}
|
||||||
|
|
||||||
const existing = canvases.get(canvasId)
|
|
||||||
if (existing) {
|
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` }
|
return { success: true, canvas: gitCanvas, message: `Canvas ${canvasId} loaded from Gitea` }
|
||||||
|
|||||||
Reference in New Issue
Block a user