first-update
This commit is contained in:
42
easy-dataset-main/app/api/projects/route.js
Normal file
42
easy-dataset-main/app/api/projects/route.js
Normal file
@@ -0,0 +1,42 @@
|
||||
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 });
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user