Files
mnote/wolai-frontend/src/app/api/documents/title/route.ts
T

65 lines
1.9 KiB
TypeScript
Raw Normal View History

2025-11-23 10:55:04 +08:00
import { NextResponse } from "next/server";
2026-01-17 10:12:53 +08:00
import { isConvexEnabled } from "@/lib/convex/enabled";
2026-04-14 13:22:29 +08:00
import {
assertDocumentId,
assertTitle,
buildDocumentBridgeContext,
buildDocumentCommandEnvelope,
documentBridgeErrorResponse,
} from "@/lib/documents/bridge";
import {
executeMetadataBridgeCommand,
type DocumentTitleUpdatePayload,
} from "@/lib/documents/metadata-command-adapter";
2025-11-23 10:55:04 +08:00
interface RenamePayload {
documentId: string;
2026-04-14 13:22:29 +08:00
workspaceId?: string | null;
2025-11-23 10:55:04 +08:00
title: string;
}
export async function POST(request: Request) {
2026-01-17 10:12:53 +08:00
if (isConvexEnabled()) {
2026-04-14 13:22:29 +08:00
try {
const { documentId, workspaceId, title }: RenamePayload = await request.json();
const normalizedDocumentId = assertDocumentId(documentId);
const normalizedTitle = assertTitle(title);
const normalizedWorkspaceId = workspaceId?.trim() || null;
const bridgeContext = await buildDocumentBridgeContext({ request, workspaceId: normalizedWorkspaceId });
const envelope = buildDocumentCommandEnvelope({
name: "documents.title.update",
payload: {
documentId: normalizedDocumentId,
workspaceId: normalizedWorkspaceId,
title: normalizedTitle,
} satisfies DocumentTitleUpdatePayload,
context: bridgeContext,
target: {
workspaceId: normalizedWorkspaceId,
pageId: normalizedDocumentId,
},
});
const result = await executeMetadataBridgeCommand({
context: bridgeContext,
envelope,
});
return NextResponse.json({
ok: true,
meta: {
requestId: result.requestId,
traceId: result.traceId,
commandId: result.commandId,
commandName: result.commandName,
},
});
} catch (error) {
return documentBridgeErrorResponse(error);
}
2026-01-17 10:12:53 +08:00
}
2026-01-18 19:01:31 +08:00
return NextResponse.json({ error: "当前仅支持 Convex 模式" }, { status: 501 });
2025-11-23 10:55:04 +08:00
}
2026-04-15 20:01:12 +08:00
export const runtime = "nodejs";