import type { Metadata } from "next"; import { headers } from "next/headers"; import { auth } from "@/lib/auth/server"; import { db, webhooks, users, eq } from "@epicure/db"; import { WebhooksManager } from "@/components/settings/webhooks-manager"; import { DeveloperLockedNotice } from "@/components/settings/developer-locked-notice"; import { DeveloperAccessToggle } from "@/components/settings/developer-access-toggle"; import { DisableDeveloperAccessButton } from "@/components/settings/disable-developer-access-button"; import { canSelfServeDeveloperAccess } from "@/lib/permissions"; import { getMessages } from "@/lib/i18n/server"; export const metadata: Metadata = {}; export default async function WebhooksPage() { 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, tier: users.tier }).from(users).where(eq(users.id, session.user.id)).limit(1))[0]; const rows = dbUser?.isDeveloper ? await db .select({ id: webhooks.id, url: webhooks.url, events: webhooks.events, active: webhooks.active, createdAt: webhooks.createdAt, }) .from(webhooks) .where(eq(webhooks.userId, session.user.id)) : []; return (

{m.settings.webhooksPage.title}

{m.settings.webhooksPage.description}

{!dbUser?.isDeveloper && dbUser && canSelfServeDeveloperAccess(dbUser) && ( )} {!dbUser?.isDeveloper && (!dbUser || !canSelfServeDeveloperAccess(dbUser)) && ( )} {dbUser?.isDeveloper && ( <> ({ id: w.id, url: w.url, events: w.events, active: w.active, createdAt: w.createdAt.toISOString(), }))} /> )}
); }