import type { Metadata } from "next"; import { headers } from "next/headers"; import Link from "next/link"; import { ExternalLink } from "lucide-react"; import { auth } from "@/lib/auth/server"; import { db, apiKeys, users, eq } from "@epicure/db"; import { ApiKeysManager } from "@/components/settings/api-keys-manager"; import { DeveloperLockedNotice } from "@/components/settings/developer-locked-notice"; import { getMessages } from "@/lib/i18n/server"; export const metadata: Metadata = {}; export default async function ApiKeysPage() { const session = await auth.api.getSession({ headers: await headers() }); if (!session) return null; const m = getMessages((session.user as { locale?: string }).locale); const dbUser = (await db.select({ isDeveloper: users.isDeveloper }).from(users).where(eq(users.id, session.user.id)).limit(1))[0]; const keys = dbUser?.isDeveloper ? await db .select({ id: apiKeys.id, name: apiKeys.name, scope: apiKeys.scope, lastUsedAt: apiKeys.lastUsedAt, createdAt: apiKeys.createdAt, }) .from(apiKeys) .where(eq(apiKeys.userId, session.user.id)) : []; return (
{m.settings.apiKeysPage.description}