aegida-console / app / api / conversations / route.ts
route.ts
Raw
import { AuthError, authenticateRequest } from "@/lib/auth/server";
import { listConversations } from "@/lib/db/conversations";
import { getPool } from "@/lib/db/pool";

const noStoreHeaders = { "Cache-Control": "no-store" };

export async function GET(request: Request): Promise<Response> {
  try {
    const user = await authenticateRequest(request);
    const conversations = await listConversations(getPool(), user.id);
    return Response.json({ conversations }, { headers: noStoreHeaders });
  } catch (error) {
    return responseForError(error);
  }
}

export function responseForError(error: unknown): Response {
  if (error instanceof AuthError) {
    return Response.json(
      { error: error.message },
      { status: 401, headers: noStoreHeaders },
    );
  }
  return Response.json(
    { error: "Хранилище чатов временно недоступно" },
    { status: 503, headers: noStoreHeaders },
  );
}