import { NextResponse } from "next/server"; import { auth } from "@/app/(auth)/auth"; import { getClawdChatsByUserId } from "@/lib/db/queries"; import { OPENCLAW_AUTH_REQUIRED_CODE, OPENCLAW_AUTH_REQUIRED_MESSAGE, } from "@/lib/openclaw-chat/errors"; export const dynamic = "force-dynamic"; export const revalidate = 0; export async function GET(request: Request) { const session = await auth().catch(() => null); if (!session?.user?.id) { return NextResponse.json( { error: OPENCLAW_AUTH_REQUIRED_MESSAGE, code: OPENCLAW_AUTH_REQUIRED_CODE, }, { status: 401 } ); } const url = new URL(request.url); const limit = Math.max( 1, Math.min(500, Math.round(Number(url.searchParams.get("limit") || 100))) ); const chats = await getClawdChatsByUserId({ userId: session.user.id, limit, }); return NextResponse.json( { chats: chats.map((chat) => ({ id: chat.id, title: chat.title, createdAt: chat.createdAt?.toISOString?.() || chat.createdAt, updatedAt: chat.updatedAt?.toISOString?.() || chat.updatedAt, messageCount: Number(chat.messageCount || 0), })), }, { headers: { "Cache-Control": "no-store, max-age=0", }, } ); }