Spaces:
Build error
Build error
File size: 1,781 Bytes
333c51a | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 | import { NextRequest, NextResponse } from "next/server";
import { db } from "@/lib/db";
// GET - Listar todos los proyectos
export async function GET() {
try {
const projects = await db.project.findMany({
include: {
repos: true,
analyses: true,
},
orderBy: { createdAt: "desc" },
});
return NextResponse.json({
success: true,
projects,
total: projects.length,
});
} catch (error) {
console.error("Error fetching projects:", error);
return NextResponse.json(
{ success: false, error: "Error al obtener proyectos" },
{ status: 500 }
);
}
}
// POST - Crear nuevo proyecto
export async function POST(request: NextRequest) {
try {
const body = await request.json();
const { name, description, style } = body;
if (!name) {
return NextResponse.json(
{ success: false, error: "El nombre del proyecto es requerido" },
{ status: 400 }
);
}
const project = await db.project.create({
data: {
name,
description: description || null,
style: style || "default",
status: "active",
},
});
// Crear tarea de agente
await db.agentTask.create({
data: {
type: "generate",
status: "completed",
input: `Crear proyecto: ${name}`,
output: `Proyecto ${name} creado exitosamente`,
completedAt: new Date(),
},
});
return NextResponse.json({
success: true,
project,
message: `Proyecto ${name} creado exitosamente`,
});
} catch (error) {
console.error("Error creating project:", error);
return NextResponse.json(
{ success: false, error: "Error al crear proyecto" },
{ status: 500 }
);
}
}
|