/** * @brief Initializes the API Request Process. * * ## Overview * This will parse various request parameters and attemp to call the * respective action on an object controller. * * @uses spl_autoload_register() * @see index.php * * @return {Null} Always unless fatal error or exception is thrown. * * @author TronNet DevOps [Sean Murray] <*****@*****.**> * @date 02/19/2014 */ public static function Init($params = null) { try { if (count($_POST)) { // Auth always required $method = 'post'; $params = $_POST; } else { // Some auth may be required $method = 'get'; $params = $_GET; } DebugHandler::Log(var_export($params, true)); DebugHandler::Log(var_export($method, true)); DebugHandler::Log(var_export($_SERVER['REQUEST_URI'], true)); $noGet = explode('?', $_SERVER['REQUEST_URI']); $delReqParams = explode('/', $noGet[0]); DebugHandler::Log(var_export($delReqParams, true)); array_shift($delReqParams); DebugHandler::Log(var_export($delReqParams, true)); if (isset($delReqParams[0]) && !empty($delReqParams[0])) { $params['_action'] = $delReqParams[0]; if (isset($delReqParams[1]) && !empty($delReqParams[1])) { $params['_target'] = $delReqParams[1]; array_shift($delReqParams); } } if (!isset($params['_target'])) { throw new Exception('No target was provided'); } DebugHandler::Log(var_export($params, true)); $className = $params['_target']; $action = $params['_action']; $controller = $className . 'Controller'; DebugHandler::Log(var_export(SATANBARBARA_API_NAMESPACE . $controller . '::ValidRequestMethod::' . $action, true)); if (call_user_func(SATANBARBARA_API_NAMESPACE . $controller . '::ValidRequestMethod', $method, $action)) { $filteredParams = call_user_func(SATANBARBARA_API_NAMESPACE . $controller . '::FilterParams', $method, $action, $params); $data = call_user_func(SATANBARBARA_API_NAMESPACE . $controller . '::' . $action, $filteredParams); } else { throw new Exception('This action cannot be envoked through the get method!'); } AJAX::Response('json', $data); } catch (Exception $e) { AJAX::Response('json', array(), 1, $e->getMessage()); } }