Template
21 lines
922 B
TypeScript
21 lines
922 B
TypeScript
import { buscarLink, FORMATO_CODIGO } from '@/lib/links';
|
|
import { CSP_AVISO, paginaAviso, respostaNaoEncontrada } from '@/lib/paginas';
|
|
|
|
// GET /<código> não redireciona direto: mostra antes uma página de aviso com o
|
|
// destino. Sem ela, qualquer pessoa usaria o seu endereço para disfarçar um
|
|
// link de golpe. A página não conta clique — quem só olha não foi ao destino.
|
|
export async function GET(_request: Request, { params }: { params: Promise<{ codigo: string }> }) {
|
|
const { codigo } = await params;
|
|
const link = FORMATO_CODIGO.test(codigo) ? buscarLink(codigo) : null;
|
|
if (!link) return respostaNaoEncontrada();
|
|
return new Response(paginaAviso(link), {
|
|
headers: {
|
|
'Content-Type': 'text/html; charset=utf-8',
|
|
'Cache-Control': 'no-store',
|
|
'Referrer-Policy': 'no-referrer',
|
|
'X-Robots-Tag': 'noindex, nofollow',
|
|
'Content-Security-Policy': CSP_AVISO,
|
|
},
|
|
});
|
|
}
|