correction de l'update du

workflow
This commit is contained in:
2026-02-26 22:39:23 +01:00
parent 56b5615abf
commit 4e1637a792
370 changed files with 19223 additions and 900 deletions

View File

@@ -0,0 +1,66 @@
export const dynamic = 'force-dynamic';
import { NextRequest, NextResponse } from 'next/server';
import { auth } from '@/lib/auth';
import getDB from '@/lib/prisma';
// PUT /api/projects/[id]/workflow — Sync workflow (nodes + connections)
export async function PUT(
request: NextRequest,
{ params }: { params: Promise<{ id: string }> }
) {
const session = await auth();
if (!session?.user?.id) {
return NextResponse.json({ error: 'Non autorisé' }, { status: 401 });
}
const { id } = await params;
const prisma = getDB();
// Verify ownership
const project = await prisma.project.findFirst({
where: { id, userId: session.user.id },
});
if (!project) {
return NextResponse.json({ error: 'Projet non trouvé' }, { status: 404 });
}
const { nodes, connections } = await request.json();
// Replace all nodes and connections in a transaction
await prisma.$transaction(async (tx) => {
// Delete existing
await tx.plotConnection.deleteMany({ where: { projectId: id } });
await tx.plotNode.deleteMany({ where: { projectId: id } });
// Create new nodes
if (nodes && nodes.length > 0) {
await tx.plotNode.createMany({
data: nodes.map((n: any) => ({
id: n.id,
projectId: id,
x: n.x,
y: n.y,
title: n.title || '',
description: n.description || '',
color: n.color || '#ffffff',
type: n.type || 'story',
})),
});
}
// Create new connections
if (connections && connections.length > 0) {
await tx.plotConnection.createMany({
data: connections.map((c: any) => ({
id: c.id,
projectId: id,
source: c.source,
target: c.target,
})),
});
}
});
return NextResponse.json({ success: true });
}