Files
YG-Datasets/easy-dataset-main/app/api/projects/[projectId]/route.js

66 lines
2.1 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
// 获取项目详情
import { deleteProject, getProject, updateProject, getTaskConfig } from '@/lib/db/projects';
export async function GET(request, { params }) {
try {
const { projectId } = params;
const project = await getProject(projectId);
const taskConfig = await getTaskConfig(projectId);
if (!project) {
return Response.json({ error: '项目不存在' }, { status: 404 });
}
return Response.json({ ...project, taskConfig });
} catch (error) {
console.error('获取项目详情出错:', String(error));
return Response.json({ error: String(error) }, { status: 500 });
}
}
// 更新项目
export async function PUT(request, { params }) {
try {
const { projectId } = params;
const projectData = await request.json();
const hasNameField = Object.prototype.hasOwnProperty.call(projectData, 'name');
const hasDefaultModelField = Object.prototype.hasOwnProperty.call(projectData, 'defaultModelConfigId');
// 至少允许更新名称或默认模型defaultModelConfigId 可显式为 null
if (!hasNameField && !hasDefaultModelField) {
return Response.json({ error: '项目名称不能为空' }, { status: 400 });
}
if (hasNameField && !projectData.name && !hasDefaultModelField) {
return Response.json({ error: '项目名称不能为空' }, { status: 400 });
}
const updatedProject = await updateProject(projectId, projectData);
if (!updatedProject) {
return Response.json({ error: '项目不存在' }, { status: 404 });
}
return Response.json(updatedProject);
} catch (error) {
console.error('更新项目出错:', String(error));
return Response.json({ error: String(error) }, { status: 500 });
}
}
// 删除项目
export async function DELETE(request, { params }) {
try {
const { projectId } = params;
const success = await deleteProject(projectId);
if (!success) {
return Response.json({ error: '项目不存在' }, { status: 404 });
}
return Response.json({ success: true });
} catch (error) {
console.error('删除项目出错:', error);
return Response.json({ error: error.message }, { status: 500 });
}
}