trf_certest/public/userarea/search_rapporto_min.php

73 lines
2.0 KiB
PHP

<?php
require_once dirname(__DIR__, 2) . '/vendor/autoload.php';
require_once dirname(__FILE__) . '/class/VisualLimsApiClient.class.php';
header('Content-Type: application/json; charset=utf-8');
ini_set('display_errors', '0');
error_reporting(E_ALL);
try {
$api = VisualLimsApiClient::getInstance();
// Esempio: search_rapporto_min.php?codice=2621716
$codice = trim($_GET['codice'] ?? '');
if ($codice === '') {
throw new Exception("Parametro codice mancante. Usa ?codice=2621716");
}
/*
* Minimal:
* - niente expand
* - max 5 record
* - pochi campi
*
* Se il campo Codice non è quello giusto, sotto proviamo anche CodiceRapporto.
*/
$attempts = [];
$filters = [
'Codice' => "Codice eq '{$codice}'",
'CodiceRapporto' => "CodiceRapporto eq '{$codice}'",
'Numero' => "Numero eq '{$codice}'"
];
foreach ($filters as $label => $filter) {
try {
$data = $api->get('Rapporto', [
'$filter' => $filter,
'$top' => 5,
'$select' => 'IdRapporto,Codice,CodiceRapporto,Numero,Data,Versione,Cliente'
]);
$attempts[$label] = [
'success' => true,
'filter' => $filter,
'records' => isset($data['value']) && is_array($data['value']) ? count($data['value']) : null,
'data' => $data
];
} catch (Exception $e) {
$attempts[$label] = [
'success' => false,
'filter' => $filter,
'error' => $e->getMessage()
];
}
}
echo json_encode([
'success' => true,
'input_codice' => $codice,
'attempts' => $attempts
], JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES);
} catch (Exception $e) {
http_response_code(500);
echo json_encode([
'success' => false,
'error' => $e->getMessage()
], JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE);
}