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