public function init(Application $app, $options = array()) { parent::init($app, $options); // list content $app->get('/1/{repositoryName}/content', 'AnyContent\\Repository\\Modules\\Core\\ContentRecords\\ContentController::index'); // get record (additional query parameters: timeshift, language) $app->get('/1/{repositoryName}/content/{contentTypeName}/record/{id}', 'AnyContent\\Repository\\Modules\\Core\\ContentRecords\\ContentController::getOne'); $app->get('/1/{repositoryName}/content/{contentTypeName}/record/{id}/{workspace}', 'AnyContent\\Repository\\Modules\\Core\\ContentRecords\\ContentController::getOne'); $app->get('/1/{repositoryName}/content/{contentTypeName}/record/{id}/{workspace}/{clippingName}', 'AnyContent\\Repository\\Modules\\Core\\ContentRecords\\ContentController::getOne'); // get records (additional query parameters: timeshift, language, order, properties, limit, page, subset, filter) $app->get('/1/{repositoryName}/content/{contentTypeName}/records', 'AnyContent\\Repository\\Modules\\Core\\ContentRecords\\ContentController::getMany'); $app->get('/1/{repositoryName}/content/{contentTypeName}/records/{workspace}', 'AnyContent\\Repository\\Modules\\Core\\ContentRecords\\ContentController::getMany'); $app->get('/1/{repositoryName}/content/{contentTypeName}/records/{workspace}/{clippingName}', 'AnyContent\\Repository\\Modules\\Core\\ContentRecords\\ContentController::getMany'); // delete record (additional query parameter: language) $app->delete('/1/{repositoryName}/content/{contentTypeName}/record/{id}', 'AnyContent\\Repository\\Modules\\Core\\ContentRecords\\ContentController::deleteOne'); $app->delete('/1/{repositoryName}/content/{contentTypeName}/record/{id}/{workspace}', 'AnyContent\\Repository\\Modules\\Core\\ContentRecords\\ContentController::deleteOne'); // delete records (additional query parameter: language, reset) $app->delete('/1/{repositoryName}/content/{contentTypeName}/records', 'AnyContent\\Repository\\Modules\\Core\\ContentRecords\\ContentController::truncate'); $app->delete('/1/{repositoryName}/content/{contentTypeName}/records/{workspace}', 'AnyContent\\Repository\\Modules\\Core\\ContentRecords\\ContentController::truncate'); // insert/update record (additional query parameters: record, language) $app->post('/1/{repositoryName}/content/{contentTypeName}/records', 'AnyContent\\Repository\\Modules\\Core\\ContentRecords\\ContentController::post'); $app->post('/1/{repositoryName}/content/{contentTypeName}/records/{workspace}', 'AnyContent\\Repository\\Modules\\Core\\ContentRecords\\ContentController::post'); $app->post('/1/{repositoryName}/content/{contentTypeName}/records/{workspace}/{clippingName}', 'AnyContent\\Repository\\Modules\\Core\\ContentRecords\\ContentController::post'); // sort records (additional query parameters: list, language) $app->post('/1/{repositoryName}/content/{contentTypeName}/sort-records', 'AnyContent\\Repository\\Modules\\Core\\ContentRecords\\ContentController::sort'); $app->post('/1/{repositoryName}/content/{contentTypeName}/sort-records/{workspace}', 'AnyContent\\Repository\\Modules\\Core\\ContentRecords\\ContentController::sort'); // simplification routes, solely for human interaction with the api $app->get('/1/{repositoryName}/content/{contentTypeName}', 'AnyContent\\Repository\\Modules\\Core\\ContentRecords\\ContentController::getContentShortCut'); }
public function init(Application $app, $options = array()) { parent::init($app, $options); $app['repos'] = $app->share(function ($app) { return new RepositoryManager($app); }); // get info on repositories $app->get('/1/{repositoryName}/info', 'AnyContent\\Repository\\Modules\\Core\\Repositories\\RepositoryController::index'); $app->get('/1/{repositoryName}/info/{workspace}', 'AnyContent\\Repository\\Modules\\Core\\Repositories\\RepositoryController::index'); // get cmdl for a content type $app->get('/1/{repositoryName}/content/{contentTypeName}/cmdl', 'AnyContent\\Repository\\Modules\\Core\\Repositories\\RepositoryController::cmdl'); $app->get('/1/{repositoryName}/content/{contentTypeName}/cmdl/{locale}', 'AnyContent\\Repository\\Modules\\Core\\Repositories\\RepositoryController::cmdl'); // update cmdl for a content type / create content type $app->post('/1/{repositoryName}/content/{contentTypeName}/cmdl', 'AnyContent\\Repository\\Modules\\Core\\Repositories\\RepositoryController::postContentTypeCMDL'); $app->post('/1/{repositoryName}/content/{contentTypeName}/cmdl/{locale}', 'AnyContent\\Repository\\Modules\\Core\\Repositories\\RepositoryController::postContentTypeCMDL'); // delete content type $app->delete('/1/{repositoryName}/content/{contentTypeName}', 'AnyContent\\Repository\\Modules\\Core\\Repositories\\RepositoryController::deleteContentType'); // update cmdl for a config type / create config type $app->post('/1/{repositoryName}/config/{configTypeName}/cmdl', 'AnyContent\\Repository\\Modules\\Core\\Repositories\\RepositoryController::postConfigTypeCMDL'); $app->post('/1/{repositoryName}/config/{configTypeName}/cmdl/{locale}', 'AnyContent\\Repository\\Modules\\Core\\Repositories\\RepositoryController::postConfigTypeCMDL'); // delete config type $app->delete('/1/{repositoryName}/config/{configTypeName}', 'AnyContent\\Repository\\Modules\\Core\\Repositories\\RepositoryController::deleteConfigType'); // simplification routes, solely for human interaction with the api $app->get('/', 'AnyContent\\Repository\\Modules\\Core\\Repositories\\RepositoryController::welcomeShortCut'); $app->get('/1', 'AnyContent\\Repository\\Modules\\Core\\Repositories\\RepositoryController::welcome'); $app->get('/1/', 'AnyContent\\Repository\\Modules\\Core\\Repositories\\RepositoryController::welcome'); $app->get('/1/{repositoryName}', 'AnyContent\\Repository\\Modules\\Core\\Repositories\\RepositoryController::getInfoShortCut'); }
public function init(Application $app, $options = array()) { parent::init($app, $options); $app->before(function (Request $request, Application $app) { $username = null; $firstname = null; $lastname = null; if ($request->query->has('userinfo')) { $userinfo = $request->get('userinfo'); $username = @$userinfo['username']; $firstname = @$userinfo['firstname']; $lastname = @$userinfo['lastname']; } $app['repos']->setUserInfo($request->getUser(), $username, $firstname, $lastname); }); }
public function init(Application $app, $options = array()) { parent::init($app, $options); // list configs $app->get('/1/{repositoryName}/config', 'AnyContent\\Repository\\Controller\\ConfigController::index'); // get cmdl for a config type $app->get('/1/{repositoryName}/config/{configTypeName}/cmdl', 'AnyContent\\Repository\\Controller\\ConfigController::cmdl'); $app->get('/1/{repositoryName}/config/{configTypeName}/cmdl/{locale}', 'AnyContent\\Repository\\Controller\\ConfigController::cmdl'); // get config (additional query parameters: timeshift, language) $app->get('/1/{repositoryName}/config/{configTypeName}/record', 'AnyContent\\Repository\\Controller\\ConfigController::getConfig'); $app->get('/1/{repositoryName}/config/{configTypeName}/record/{workspace}', 'AnyContent\\Repository\\Controller\\ConfigController::getConfig'); // insert/update config (additional query parameters: language) $app->post('/1/{repositoryName}/config/{configTypeName}/record', 'AnyContent\\Repository\\Controller\\ConfigController::post'); $app->post('/1/{repositoryName}/config/{configTypeName}/record/{workspace}', 'AnyContent\\Repository\\Controller\\ConfigController::post'); // simplification routes, solely for human interaction with the api $app->get('/1/{repositoryName}/config/{configTypeName}', 'AnyContent\\Repository\\Controller\\ConfigController::getConfigShortCut'); }
public function init(Application $app, $options = array()) { parent::init($app, $options); // get binary file $app->get('/1/{repositoryName}/file/{path}', 'AnyContent\\Repository\\Controller\\FilesController::binary')->assert('path', '.+'); // list files $app->get('/1/{repositoryName}/files', 'AnyContent\\Repository\\Controller\\FilesController::scan'); $app->get('/1/{repositoryName}/files/', 'AnyContent\\Repository\\Controller\\FilesController::scan'); $app->get('/1/{repositoryName}/files/{path}', 'AnyContent\\Repository\\Controller\\FilesController::scan')->assert('path', '.+'); // save file (post body contains binary) $app->post('/1/{repositoryName}/file/{path}', 'AnyContent\\Repository\\Controller\\FilesController::postFile')->assert('path', '.+'); // create folder $app->post('/1/{repositoryName}/files/{path}', 'AnyContent\\Repository\\Controller\\FilesController::createFolder')->assert('path', '.+'); // delete file $app->delete('/1/{repositoryName}/file/{path}', 'AnyContent\\Repository\\Controller\\FilesController::deleteFile')->assert('path', '.+'); // delete files $app->delete('/1/{repositoryName}/files/{path}', 'AnyContent\\Repository\\Controller\\FilesController::deleteFiles')->assert('path', '.+'); $app->delete('/1/{repositoryName}/files', 'AnyContent\\Repository\\Controller\\FilesController::deleteFiles'); $app->delete('/1/{repositoryName}/files/', 'AnyContent\\Repository\\Controller\\FilesController::deleteFiles'); }
public function init(Application $app, $options = array()) { parent::init($app, $options); $app->registerCMDLAccessAdapter('directory', 'AnyContent\\Repository\\Modules\\Core\\DirectoryCMDLAccessAdapter\\DirectoryCMDLAccessAdapter'); }
public function init(Application $app, $options = array()) { parent::init($app, $options); $app->before('AnyContent\\Repository\\Modules\\Core\\ResponseCache\\ResponseCache::before'); $app->after('AnyContent\\Repository\\Modules\\Core\\ResponseCache\\ResponseCache::after'); }
public function init(Application $app, $options = array()) { parent::init($app, $options); $app->after(function (Request $request, Response $response, Application $app) { if ($response->headers->has('content-type')) { if ($response->headers->get('content-type') == 'application/json') { // http://stackoverflow.com/questions/6054033/pretty-printing-json-with-php $json = $response->getContent(); $result = ''; $level = 0; $prev_char = ''; $in_quotes = false; $ends_line_level = NULL; $json_length = strlen($json); for ($i = 0; $i < $json_length; $i++) { $char = $json[$i]; $new_line_level = NULL; $post = ""; if ($ends_line_level !== NULL) { $new_line_level = $ends_line_level; $ends_line_level = NULL; } if ($char === '"' && $prev_char != '\\') { $in_quotes = !$in_quotes; } else { if (!$in_quotes) { switch ($char) { case '}': case ']': $level--; $ends_line_level = NULL; $new_line_level = $level; break; case '{': case '[': $level++; case ',': $ends_line_level = $level; break; case ':': $post = " "; break; case " ": case "\t": case "\n": case "\r": $char = ""; $ends_line_level = $new_line_level; $new_line_level = NULL; break; } } } if ($new_line_level !== NULL) { $result .= "\n" . str_repeat(" ", $new_line_level); } $result .= $char . $post; $prev_char = $char; } $response->setContent($result); } } }); }
public function init(Application $app, $options = array()) { parent::init($app, $options); $app->post('/1/{repositoryName}', 'AnyContent\\Repository\\Modules\\Core\\SuperAdmin\\RepositoryController::createRepository'); $app->delete('/1/{repositoryName}', 'AnyContent\\Repository\\Modules\\Core\\SuperAdmin\\RepositoryController::discardRepository'); }