import { buscarLink, FORMATO_CODIGO, registrarClique, type Link } from '@/lib/links'; import { respostaNaoEncontrada } from '@/lib/paginas'; type Contexto = { params: Promise<{ codigo: string }> }; function redirecionar(link: Link | null): Response { if (!link) return respostaNaoEncontrada(); return new Response(null, { status: 302, headers: { Location: link.url, 'Cache-Control': 'no-store', 'Referrer-Policy': 'no-referrer' }, }); } // O botão "Continuar" leva para GET //ir: aqui o servidor soma o // clique e redireciona (302) para o link. export async function GET(_request: Request, { params }: Contexto) { const { codigo } = await params; return redirecionar(FORMATO_CODIGO.test(codigo) ? registrarClique(codigo) : null); } // HEAD (robôs que só conferem o endereço) responde igual, mas não conta clique. export async function HEAD(_request: Request, { params }: Contexto) { const { codigo } = await params; return redirecionar(FORMATO_CODIGO.test(codigo) ? buscarLink(codigo) : null); }