Files

43 lines
1.4 KiB
JavaScript
Raw Permalink Normal View History

2026-03-17 14:36:31 +08:00
import { createProject, getProjects, isExistByName } from '@/lib/db/projects';
import { createInitModelConfig, getModelConfigByProjectId } from '@/lib/db/model-config';
export async function POST(request) {
try {
const projectData = await request.json();
if (!projectData.name) {
return Response.json({ error: 'Project name is required' }, { status: 400 });
}
if (await isExistByName(projectData.name)) {
return Response.json({ error: 'Project name already exists' }, { status: 400 });
}
const newProject = await createProject(projectData);
if (projectData.reuseConfigFrom) {
let data = await getModelConfigByProjectId(projectData.reuseConfigFrom);
let newData = data.map(item => {
delete item.id;
return {
...item,
projectId: newProject.id
};
});
await createInitModelConfig(newData);
}
return Response.json(newProject, { status: 201 });
} catch (error) {
console.error('Failed to create project:', String(error));
return Response.json({ error: String(error) }, { status: 500 });
}
}
export async function GET(request) {
try {
const projects = await getProjects();
return Response.json(projects);
} catch (error) {
console.error('Failed to get project list:', String(error));
return Response.json({ error: String(error) }, { status: 500 });
}
}