Non puoi selezionare più di 25 argomenti
Gli argomenti devono iniziare con una lettera o un numero, possono includere trattini ('-') e possono essere lunghi fino a 35 caratteri.
79 righe
2.9 KiB
79 righe
2.9 KiB
<? |
|
session_name('APISESSID'); |
|
$error = ["errorHeader" => 403, "errorCode" => 403, "errorDescription" => "Forbidden"]; |
|
$username = $_SERVER['PHP_AUTH_USER'] ?? ""; |
|
$password = $_SERVER['PHP_AUTH_PW'] ?? ""; |
|
header('Content-Type: application/json'); |
|
if (!empty($username) && !empty($password)) { |
|
$configPath = substr(__DIR__, 0, strpos(__DIR__, "/public_html")) . "/config.php"; |
|
include_once $configPath; |
|
if (!empty($_SESSION["ente"])) { |
|
$login = Utente::login($username, $password, "api"); |
|
if (isset($login) && is_a($login, "Utente")) { |
|
$_SESSION["utente"] = $login; |
|
if ($_SESSION["utente"]->permission("api")) { |
|
include_once __DIR__ . "/apiAdvancedManager.class.php"; |
|
$api = new apiAdvancedManager(); |
|
if ($api !== false) { |
|
$request = explode("?", $_SERVER['REQUEST_URI']); |
|
$urlFrag = explode("/", $request[0]); |
|
$found = false; |
|
$version = false; |
|
$method = ""; |
|
foreach($urlFrag AS $u) { |
|
if (!$found) { |
|
if ($u == "advanced") { |
|
$found = true; |
|
} |
|
} else { |
|
if (!$version) { |
|
$version = $u; |
|
} else { |
|
$method .= ucfirst(strtolower($u)); |
|
} |
|
} |
|
|
|
} |
|
$api->method = $method; |
|
$api->endPoint = "/api/rest/advanced/service.php"; |
|
$api->debug = false; |
|
$query = ""; |
|
if ($_SERVER['REQUEST_METHOD'] === 'POST') { |
|
if (!empty($_POST)) { |
|
$query = $_POST; |
|
} else { |
|
$query = json_decode(file_get_contents("php://input"), true); |
|
} |
|
} else if (!empty($request[1])) { |
|
parse_str($request[1], $query); |
|
} |
|
$api->query = $query; |
|
$error = ""; |
|
$results = $api->handleRequest(); |
|
if ($results === false) { |
|
$error = ["errorHeader" => $api->errorHeader, "errorCode" => $api->errorCode, "errorDescription" => $api->errorDescription, "transactionID" => $api->codiceLog]; |
|
} else { |
|
echo json_encode($results); |
|
} |
|
} else { |
|
$error = ["errorHeader" => 403, "errorCode" => 403, "errorDescription" => "Impossibile accedere alle API"]; |
|
} |
|
} else { |
|
$error = ["errorHeader" => 403, "errorCode" => 403, "errorDescription" => "Impossibile accedere"]; |
|
} |
|
} else { |
|
$error = ["errorHeader" => 403, "errorCode" => 403, "errorDescription" => "Credenziali Errate"]; |
|
} |
|
} else { |
|
$error = ["errorHeader" => 500, "errorCode" => 500, "errorDescription" => "Errori nella sessione"]; |
|
} |
|
session_destroy(); |
|
} else { |
|
$error["errorDescription"] = "Credenziali Obbligatorie"; |
|
} |
|
if (!empty($error)) { |
|
header('HTTP/1.0 ' . $error["errorHeader"]); |
|
unset($error["errorHeader"]); |
|
echo json_encode($error); |
|
die(); |
|
}
|
|
|