47 lines
1.8 KiB
PHP
47 lines
1.8 KiB
PHP
<?php
|
|
require_once dirname(__DIR__, 2) . '/vendor/autoload.php';
|
|
require_once __DIR__ . '/class/db-functions.php';
|
|
include dirname(__DIR__) . '/../extra/auth.php';
|
|
if (!Auth::check()) { http_response_code(401); echo json_encode(['error' => 'Unauthorized']); exit; }
|
|
|
|
header('Content-Type: application/json');
|
|
|
|
try {
|
|
// Read from matrici cache (populated by get_matrici.php / warm_cache.php)
|
|
$cacheFile = __DIR__ . '/cache/matrici.json';
|
|
if (file_exists($cacheFile)) {
|
|
$data = json_decode(file_get_contents($cacheFile), true);
|
|
$matrici = $data['value'] ?? [];
|
|
} else {
|
|
// Fallback: trigger cache creation
|
|
require_once __DIR__ . '/class/VisualLimsApiClient.class.php';
|
|
$api = VisualLimsApiClient::getInstance();
|
|
$apiData = $api->get('Matrice');
|
|
$matrici = [];
|
|
foreach (($apiData['value'] ?? []) as $item) {
|
|
$nome = $item['NomeMatrice'] ?? '';
|
|
if ($nome !== '' && substr($nome, 0, 1) !== '*') {
|
|
$matrici[] = ['IdMatrice' => $item['IdMatrice'], 'NomeMatrice' => $nome, 'MacroMatrice' => $item['MacroMatrice'] ?? null];
|
|
}
|
|
}
|
|
if (!is_dir(__DIR__ . '/cache')) mkdir(__DIR__ . '/cache', 0777, true);
|
|
file_put_contents($cacheFile, json_encode(['success' => true, 'value' => $matrici]));
|
|
}
|
|
|
|
// Extract unique MacroMatrice values
|
|
$macroValues = [];
|
|
foreach ($matrici as $m) {
|
|
$macro = $m['MacroMatrice'] ?? null;
|
|
if ($macro !== null && $macro !== '' && substr($macro, 0, 1) !== '*') {
|
|
$macroValues[$macro] = true;
|
|
}
|
|
}
|
|
$macroMatrici = array_keys($macroValues);
|
|
sort($macroMatrici);
|
|
|
|
echo json_encode(['success' => true, 'value' => $macroMatrici]);
|
|
} catch (Exception $e) {
|
|
http_response_code(500);
|
|
echo json_encode(['success' => false, 'message' => $e->getMessage()]);
|
|
}
|