gestione gare pubbliche
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

<?
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();
}