1
0
mirror of https://github.com/devcode-it/openstamanager.git synced 2024-12-28 16:50:06 +01:00
openstamanager/api/index.php
Thomas Zilio 965d467d7d Miglioramento della documentazione del codice
Miglioramento della documentazione del codice nelle classi dedicata alla generazione dell'input HTML.
Aggiunto supporto agli array in formato JSON nel campo "values" dei select.
Aggiunto redirect automatico nel file _controller.php_: se specificati $id_record e $id_module indirizza al file _editor.php_.
2018-01-12 16:23:26 +01:00

72 lines
1.8 KiB
PHP

<?php
function serverError()
{
$error = error_get_last();
if ($error['type'] == E_ERROR) {
ob_end_clean();
echo API::error('serverError');
}
}
// Gestione degli errori
set_error_handler('serverError');
register_shutdown_function('serverError');
include_once __DIR__.'/../core.php';
// Disabilta la sessione per l'API
session_write_close();
// Permesso di accesso all'API da ogni dispositivo
header('Access-Control-Allow-Origin: *');
// Attenzione: al momento l'API permette la lettura di tutte le tabelle presenti nel database (non limitate a quelle del progetto)
try {
// Controlli sulla chiave di accesso
$api = new API();
// Lettura delle informazioni
$request = API::getRequest();
// Gestione della richiesta
$method = $_SERVER['REQUEST_METHOD'];
switch ($method) {
// Richiesta PUT (modifica elementi)
case 'PUT':
$result = $api->update($request);
break;
// Richiesta POST (creazione elementi)
case 'POST':
$result = $api->create($request);
break;
// Richiesta GET (ottenimento elementi)
case 'GET':
// Risorsa specificata
if (!empty($request)) {
$result = $api->retrieve($request);
}
// Risorsa non specificata (lista delle risorse disponibili)
else {
$result = API::response(API::getResources()['retrieve']);
}
break;
// Richiesta DELETE (eliminazione elementi)
case 'DELETE':
$result = $api->delete($request);
break;
}
} catch (InvalidArgumentException $e) {
$result = API::error('unauthorized');
} catch (Exception $e) {
$result = API::error('serverError');
}
// Stampa dei risultati
echo $result;