Esempio n. 1
0
<?php

/** sqlite rest webservices
 * costruire degli webservices rest 0 operations
 */
error_reporting(E_ALL & ~E_NOTICE);
require_once 'script/mom.php';
MOM::serve();
Esempio n. 2
0
 public static function serve()
 {
     try {
         try {
             $entityBody = file_get_contents('php://input');
         } catch (Exception $e) {
         }
         LOG::trace("INCOMING-" . full_url() . "-" . $_SERVER['REQUEST_METHOD'] . "\n" . print_r($_REQUEST, true) . "\n" . $entityBody);
         switch ($_SERVER['REQUEST_METHOD']) {
             case 'GET':
                 if (isset($_REQUEST['$e'])) {
                     $params = array();
                     foreach ($_REQUEST as $key => $value) {
                         if (startsWith($key, "@")) {
                             $params[substr($key, 1)] = $value;
                         }
                     }
                     $content = MOM::read($_REQUEST['$e'], $params);
                 } else {
                     $content = MOM::meta();
                 }
                 break;
             case 'POST':
                 if (isset($_REQUEST['$e'])) {
                     $values = json_decode($entityBody);
                     $content = MOM::create($_REQUEST['$e'], $values);
                 }
                 break;
             case 'PUT':
                 if (isset($_REQUEST['$e'])) {
                     $values = json_decode($entityBody);
                     $params = array();
                     foreach ($_REQUEST as $key => $value) {
                         if (startsWith($key, "@")) {
                             $params[substr($key, 1)] = $value;
                         }
                     }
                     $content = MOM::update($_REQUEST['$e'], $params, $values);
                 }
                 break;
             case 'DELETE':
                 if (isset($_REQUEST['$e'])) {
                     $params = array();
                     foreach ($_REQUEST as $key => $value) {
                         if (startsWith($key, "@")) {
                             $params[substr($key, 1)] = $value;
                         }
                     }
                     $content = MOM::delete($_REQUEST['$e'], $params);
                 }
                 break;
         }
         $response = MOM::pack($content);
         LOG::trace("OUTCOMING-" . full_url() . "-" . $_SERVER['REQUEST_METHOD'] . "-" . $response);
         header($_SERVER['SERVER_PROTOCOL'] . " 200 OK");
         echo $response;
     } catch (Exception $e) {
         LOG::error("EXCEPTION-" . full_url() . "-" . $_SERVER['REQUEST_METHOD'] . "\n" . print_r($e, true));
         header($_SERVER['SERVER_PROTOCOL'] . ' 500 Internal Server Error', true, 500);
         $obj = new stdClass();
         $obj->error = $e->getMessage();
         echo MOM::pack($obj);
     }
 }