55 lines
1.8 KiB
PHP
55 lines
1.8 KiB
PHP
<?php
|
|
|
|
/**
|
|
* api_medical_certificates_list.php
|
|
* --------------------------------------------------------------------------
|
|
* Restituisce i certificati medici dell'utente autenticato.
|
|
*
|
|
* Posizione: public/api/api_medical_certificates_list.php
|
|
* Metodo: GET
|
|
* Auth: Bearer token (Sanctum) via _bootstrap.php
|
|
*
|
|
* Tabella: certificateuserprofile
|
|
* idcertificateuserprofile, documentdescription, filenamedocument,
|
|
* iduser, expirydatedocument, uploaded_at
|
|
* --------------------------------------------------------------------------
|
|
*/
|
|
|
|
require_once __DIR__ . '/_bootstrap.php';
|
|
$userId = (int) $user->id;
|
|
|
|
$today = date('Y-m-d');
|
|
|
|
$stmt = $db->prepare("
|
|
SELECT idcertificateuserprofile, documentdescription, filenamedocument,
|
|
expirydatedocument, uploaded_at
|
|
FROM certificateuserprofile
|
|
WHERE iduser = :uid
|
|
ORDER BY uploaded_at DESC, idcertificateuserprofile DESC
|
|
");
|
|
$stmt->execute([':uid' => $userId]);
|
|
$rows = $stmt->fetchAll();
|
|
|
|
$certificates = [];
|
|
foreach ($rows as $r) {
|
|
$filename = (string) ($r['filenamedocument'] ?? '');
|
|
$expiry = $r['expirydatedocument'] ?? null;
|
|
$isExpired = ($expiry !== null && $expiry !== '' && $expiry < $today);
|
|
|
|
$certificates[] = [
|
|
'id' => (int) $r['idcertificateuserprofile'],
|
|
'document_name' => (string) ($r['documentdescription'] ?? ''),
|
|
'filename' => $filename,
|
|
'uploaded_at' => $r['uploaded_at'] ?? null,
|
|
'expiry_date' => $expiry,
|
|
'is_expired' => $isExpired,
|
|
// percorso file relativo (la webapp li serve da public/user/document/)
|
|
'file_url' => $filename !== '' ? '/user/document/' . $filename : null,
|
|
];
|
|
}
|
|
|
|
echo json_encode([
|
|
'success' => true,
|
|
'certificates' => $certificates,
|
|
], JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES);
|