47 lines
984 B
TypeScript
47 lines
984 B
TypeScript
// app/api/files/route.ts
|
|
import { NextResponse } from "next/server";
|
|
import prisma from "@/app/lib/prisma";
|
|
|
|
// 获取文件树
|
|
export async function GET() {
|
|
try {
|
|
const files = await prisma.file.findMany({
|
|
include: {
|
|
children: true,
|
|
},
|
|
where: {
|
|
parentId: null, // 获取根目录文件
|
|
},
|
|
});
|
|
return NextResponse.json(files);
|
|
} catch (error) {
|
|
return NextResponse.json(
|
|
{ error: "Failed to fetch files" + error},
|
|
{ status: 500 }
|
|
);
|
|
}
|
|
}
|
|
|
|
// 创建新文件/文件夹
|
|
export async function POST(request: Request) {
|
|
try {
|
|
const { name, type, parentId } = await request.json();
|
|
|
|
const file = await prisma.file.create({
|
|
data: {
|
|
name,
|
|
type,
|
|
parentId,
|
|
updatedAt: new Date(),
|
|
},
|
|
});
|
|
|
|
return NextResponse.json(file);
|
|
} catch (error) {
|
|
return NextResponse.json(
|
|
{ error: "Failed to create file" + error},
|
|
{ status: 500 }
|
|
);
|
|
}
|
|
}
|