/home/techb158/cosmic-risk.abdallabala.com/src/app/api/projects/[projectId]/experiments
NameSizeModeActions
[experimentId]/-0755rm
route.js14370644editdlrm
Edit: /home/techb158/cosmic-risk.abdallabala.com/src/app/api/projects/[projectId]/experiments/route.js (1437B)
const { prisma } = require("../../../../../lib/prisma"); const { getActorFromRequest } = require("../../../../../lib/request-context"); const { requireProjectAccess } = require("../../../../../lib/tenant-guard"); const { jsonResponse, errorResponse } = require("../../../../../lib/http"); export async function GET(request, { params }) { try { const { projectId } = await params; const actor = await getActorFromRequest(request); await requireProjectAccess(actor, projectId, "project:read"); const experiments = await prisma.experiment.findMany({ where: { projectId }, include: { metrics: { orderBy: { createdAt: "desc" } } }, orderBy: { createdAt: "desc" } }); return jsonResponse({ experiments }); } catch (error) { return errorResponse(error); } } export async function POST(request, { params }) { try { const { projectId } = await params; const actor = await getActorFromRequest(request); await requireProjectAccess(actor, projectId, "project:update"); const body = await request.json(); const { name, modelName, selected } = body; if (!name) { return jsonResponse({ error: "name is required" }, 400); } const experiment = await prisma.experiment.create({ data: { projectId, name, modelName, selected: selected ?? false } }); return jsonResponse(experiment, 201); } catch (error) { return errorResponse(error); } }