$global, "local" => $local, "count" => count($global) + count($local) ]; } public static function getGlobalEndpoints() : array { global $config; $entries = $config["albiAPI"]["endpoints"] ?? []; $enteToken = $_SESSION["ente"]->getInfo()["token"] ?? ""; if(!empty($entries)) { $entries = array_filter($entries, function($entry) use($enteToken) { return DEVELOP_ENV ? true : $entry["token"] != $enteToken; }); return $entries; } return []; } public static function createLocalEndpoint(array $params, ?string &$message = null) { global $pdo; $message = "Impossibile creare l'endpoint"; if(!isset($params["endpoint"])) return false; if(!isset($params["token"])) return false; if(!isset($params["displayName"])) return false; $endpoint = $params["endpoint"]; $token = $params["token"]; $displayName = $params["displayName"]; // Chiamata di prova $raw_response = tuttogare_api_call("{$endpoint}/getAlbi", $token); if(!valid_json($raw_response, $raw_response, TRUE)) { $message = "L'endpoint impostato non risponde correttamente. Verifica l'URL ed il token"; return false; } $message = "Impossibile aggiungere l'endpoint al database"; $result = $pdo->go( "INSERT INTO b_access_api_endpoints (endpoint, token, displayName, albi) VALUES (:endpoint, :token, :displayName, :albi)", [ ":endpoint" => $endpoint, ":token" => $token, ":displayName" => $displayName, ":albi" => "S", ] ); return $result->rowCount() > 0; } public static function deleteLocalEndpoint(array $params, ?string &$message = null) { global $pdo; $message = "Impossibile cancellare l'endpoint"; if(!isset($params["key"])) return false; $result = $pdo->go("DELETE FROM b_access_api_endpoints WHERE codice = :codice", [":codice" => $params["key"]]); return $result->rowCount() > 0; } public static function getLocalEndpoints() : array { global $pdo; $entries = $pdo->go("SELECT `codice`, `token`, `endpoint`, `displayName` FROM b_access_api_endpoints WHERE albi = 'S'")->fetchAll(PDO::FETCH_ASSOC); $enteToken = $_SESSION["ente"]->getInfo()["token"] ?? ""; if(!empty($entries)) { $entries = array_filter($entries, function($entry) use($enteToken) { return DEVELOP_ENV ? true : $entry["token"] != $enteToken; }); return array_column($entries, null, "codice"); } return []; } public static function getLocalEndpoint(int $codice) : ?array { global $pdo; $entry = $pdo->go("SELECT `codice`, `token`, `endpoint`, `displayName` FROM b_access_api_endpoints WHERE albi = 'S' AND codice = :codice", [":codice" => $codice])->fetch(PDO::FETCH_ASSOC); return $entry; } public static function getGlobalEndpoint(string $key) : ?array { global $config; return $config["albiAPI"]["endpoints"][$key] ?? null; } }