sofia-cloud / src /app /api /projects /route.ts
Gmagl
Add Sofia Cloud complete files
333c51a
Raw
History Blame
1.78 kB
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 }
);
}
}