Files
kaffeekasse-saas/rechtserklaerung-bestaetigung.php
T

39 lines
1.7 KiB
PHP

<?php
require_once __DIR__ . '/app/database.php';
require_once __DIR__ . '/app/legal-requests.php';
$token = (string)($_GET['token'] ?? '');
$request = app_fetch_legal_request_by_token(app_db_pdo(), $token);
if ($request === null) {
http_response_code(404);
exit('Bestätigung nicht gefunden.');
}
$requestMetadata = json_decode((string)($request['metadata_json'] ?? ''), true);
$input = [
'request_type' => $request['request_type'],
'requester_name' => $request['requester_name'],
'requester_email' => $request['requester_email'],
'contract_reference' => $request['contract_reference'],
'request_reason' => $request['request_reason'],
'cancellation_kind' => is_array($requestMetadata) && ($requestMetadata['cancellation_kind'] ?? null) === 'extraordinary' ? 'extraordinary' : 'ordinary',
];
$processing = [
'effective_end' => is_array($requestMetadata) && !empty($requestMetadata['effective_end'])
? (string)$requestMetadata['effective_end']
: ($request['requested_end'] === 'earliest' ? 'zum frühestmöglichen Zeitpunkt' : (string)($request['requested_end'] ?? '')),
'processing_note' => 'Die Erklärung wurde unter dem angegebenen Zeitpunkt gespeichert.',
];
$stored = ['reference_code' => $request['reference_code'], 'received_at' => $request['received_at']];
$text = app_legal_request_confirmation_text($input, $stored, $processing);
if (!headers_sent()) {
header('Referrer-Policy: no-referrer');
header('Content-Type: text/plain; charset=UTF-8');
if (isset($_GET['download'])) {
header('Content-Disposition: attachment; filename="kaffeeliste-bestaetigung-' . $request['reference_code'] . '.txt"');
}
}
echo $text;