mirror of
				https://github.com/devcode-it/openstamanager.git
				synced 2025-06-05 22:09:38 +02:00 
			
		
		
		
	
		
			
				
	
	
		
			79 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			79 lines
		
	
	
		
			2.0 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 (count($request) > 1) {
 | 
						|
                $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) {
 | 
						|
	
 | 
						|
	 if (Auth::getInstance()->attempt(post('username'), post('password'))) {
 | 
						|
		$token = Auth::getInstance()->getToken();
 | 
						|
		$result = $token;
 | 
						|
	 }else{
 | 
						|
		$result = API::error('unauthorized');
 | 
						|
	 }
 | 
						|
	 
 | 
						|
} catch (Exception $e) {
 | 
						|
    $result = API::error('serverError');
 | 
						|
}
 | 
						|
 | 
						|
// Stampa dei risultati
 | 
						|
echo $result;
 |