import { get, runCleanupIfNeeded } from '@/src/lib/db.js'; import { formatTimestamp, readSearchParam } from '@/src/lib/format.js'; import { StatusMessage } from '@/app/manage/_components/status-message.js'; export const dynamic = 'force-dynamic'; function normalizeRequestId(value) { return String(value || '').trim().toUpperCase(); } function isValidRequestId(value) { return /^[A-Z2-7]{6,24}$/.test(value); } function requestState(requestEntry, now) { if (!requestEntry) { return 'missing'; } if (Number(requestEntry.completed_at || 0) > 0) { return 'completed'; } if (Number(requestEntry.expires_at || 0) <= now) { return 'expired'; } return 'open'; } export default async function UploadRequestPage({ params, searchParams }) { await runCleanupIfNeeded(); const resolvedParams = await params; const requestId = normalizeRequestId(resolvedParams.id); if (!isValidRequestId(requestId)) { return (

Ungültige Anfrage

Die Upload-Anfrage konnte nicht verarbeitet werden.

); } const requestEntry = await get( `SELECT id, note, created_at, expires_at, completed_at, uploaded_original_name FROM upload_requests WHERE id = ?`, [requestId] ); const now = Date.now(); const state = requestState(requestEntry, now); const resolvedSearchParams = await searchParams; const error = readSearchParam(resolvedSearchParams, 'error'); const success = readSearchParam(resolvedSearchParams, 'success'); if (state === 'missing') { return (

Anfrage nicht gefunden

Diese Upload-Anfrage existiert nicht oder wurde entfernt.

); } return (

Datei-Anfrage

Anfrage-ID: {requestEntry.id}

Status {state === 'open' ? 'Offen' : state === 'completed' ? 'Bereits abgeschlossen' : 'Abgelaufen'}
Erstellt {formatTimestamp(requestEntry.created_at)}
Gültig bis {formatTimestamp(requestEntry.expires_at)}
{requestEntry.note ? (
Notiz {requestEntry.note}
) : null}
{state === 'open' ? (

Datei hochladen

) : null} {state === 'completed' ? (

Vielen Dank

{requestEntry.uploaded_original_name ? `Diese Anfrage wurde bereits mit „${requestEntry.uploaded_original_name}“ abgeschlossen.` : 'Diese Anfrage wurde bereits abgeschlossen.'}

) : null}
); }