diff options
author | Bernhard Posselt <dev@bernhard-posselt.com> | 2014-09-16 16:24:20 +0200 |
---|---|---|
committer | Bernhard Posselt <dev@bernhard-posselt.com> | 2014-09-16 16:24:20 +0200 |
commit | 9e36ef31f9bf16d43326fd047619ada5ff16e072 (patch) | |
tree | e228816adedacfed87eb08e8bc86658536cbbe86 /appinfo | |
parent | 6a7ac3d9da3dea4130eb08a07a0a0603418d54ab (diff) | |
parent | 21728afff571adfc508cf5fa473d094946ef188f (diff) |
merge
Diffstat (limited to 'appinfo')
-rw-r--r-- | appinfo/app.json | 18 | ||||
-rw-r--r-- | appinfo/app.php | 34 | ||||
-rw-r--r-- | appinfo/application.php | 167 | ||||
-rw-r--r-- | appinfo/database.xml | 13 | ||||
-rw-r--r-- | appinfo/info.xml | 4 | ||||
-rw-r--r-- | appinfo/routes.php | 148 | ||||
-rw-r--r-- | appinfo/setup.php | 29 | ||||
-rw-r--r-- | appinfo/version | 2 |
8 files changed, 226 insertions, 189 deletions
diff --git a/appinfo/app.json b/appinfo/app.json index 2cd5cafe3..14f155e62 100644 --- a/appinfo/app.json +++ b/appinfo/app.json @@ -1,10 +1,10 @@ { - "name": "News", + "name": "News", "id": "news", - "description": "ownCloud News App", - "licence": "AGPL", - "version": "2.001", - "authors": [ + "description": "ownCloud News App", + "licence": "AGPL", + "version": "3.001", + "authors": [ { "name": "Bernhard Posselt", "email": "dev@bernhard-posselt.com" @@ -28,15 +28,15 @@ "documentation": { "developer": "https://github.com/owncloud/news/wiki" }, - "jobs": ["OCA\\News\\BackgroundJob\\Task"], + "jobs": ["OCA\\News\\Cron\\Updater"], "hooks": { "OC_User::pre_deleteUser": "OCA\\News\\Hooks\\User::deleteUser" }, "databases": ["pgsql", "sqlite3", "mysql"], - "categories": ["Multimedia"], + "categories": ["Multimedia"], "dependencies": { - "php": ">=5.3.6", - "owncloud": ">=6.0.3", + "php": ">=5.4", + "owncloud": ">=7", "libs": { "curl": "*" } diff --git a/appinfo/app.php b/appinfo/app.php index 1cc9994ae..77e3fe19d 100644 --- a/appinfo/app.php +++ b/appinfo/app.php @@ -13,18 +13,28 @@ namespace OCA\News\AppInfo; -$container = new Application(); +use \OCA\News\Config\DependencyException; -$config = $container->getAppConfig(); -$config->loadConfig(__DIR__ . '/app.json'); -$config->registerNavigation(); -$config->registerBackgroundJobs(); -$config->registerHooks(); -// check for correct app dependencies -try { - $config->testDependencies(); -} catch(\OCA\News\Config\DependencyException $e) { - $container->getLogger()->log($e->getMessage()); -} +require_once __DIR__ . '/setup.php'; +if (is_setup()) { + + $container = new Application(); + + $config = $container->getAppConfig(); + $config->loadConfig(__DIR__ . '/app.json'); + $config->registerNavigation(); + $config->registerBackgroundJobs(); + $config->registerHooks(); + + // check for correct app dependencies + try { + $config->testDependencies(); + } catch(DependencyException $e) { + $logger = $container->getLogger(); + $params = $container->getLoggerParameters(); + $logger->emergency($e->getMessage(), $params); + } + +}
\ No newline at end of file diff --git a/appinfo/application.php b/appinfo/application.php index fc2e00d1a..01e623adc 100644 --- a/appinfo/application.php +++ b/appinfo/application.php @@ -15,29 +15,27 @@ namespace OCA\News\AppInfo; use \OC\Files\View; use \OCP\AppFramework\App; +use \OCP\Util; +use \OCP\User; use \OCA\News\Config\AppConfig; -use \OCA\News\Core\Logger; -use \OCA\News\Core\Db; - use \OCA\News\Controller\PageController; use \OCA\News\Controller\FolderController; use \OCA\News\Controller\FeedController; use \OCA\News\Controller\ItemController; use \OCA\News\Controller\ExportController; -use \OCA\News\Controller\ApiController; +use \OCA\News\Controller\UtilityApiController; use \OCA\News\Controller\FolderApiController; use \OCA\News\Controller\FeedApiController; use \OCA\News\Controller\ItemApiController; -use \OCA\News\BusinessLayer\FolderBusinessLayer; -use \OCA\News\BusinessLayer\FeedBusinessLayer; -use \OCA\News\BusinessLayer\ItemBusinessLayer; +use \OCA\News\Service\FolderService; +use \OCA\News\Service\FeedService; +use \OCA\News\Service\ItemService; use \OCA\News\Db\FolderMapper; use \OCA\News\Db\FeedMapper; -use \OCA\News\Db\ItemMapper; use \OCA\News\Db\StatusFlag; use \OCA\News\Db\MapperFactory; @@ -45,7 +43,6 @@ use \OCA\News\Utility\Config; use \OCA\News\Utility\OPMLExporter; use \OCA\News\Utility\Updater; use \OCA\News\Utility\SimplePieAPIFactory; -use \OCA\News\Utility\TimeFactory; use \OCA\News\Utility\FaviconFetcher; use \OCA\News\Fetcher\Fetcher; @@ -55,8 +52,6 @@ use \OCA\News\ArticleEnhancer\Enhancer; use \OCA\News\ArticleEnhancer\XPathArticleEnhancer; use \OCA\News\ArticleEnhancer\RegexArticleEnhancer; -use \OCA\News\Middleware\CORSMiddleware; - require_once __DIR__ . '/../3rdparty/htmlpurifier/library/HTMLPurifier.auto.php'; @@ -79,7 +74,7 @@ class Application extends App { */ $container->registerService('PageController', function($c) { return new PageController( - $c->query('AppName'), + $c->query('AppName'), $c->query('Request'), $c->query('CoreConfig'), $c->query('L10N'), @@ -89,22 +84,22 @@ class Application extends App { $container->registerService('FolderController', function($c) { return new FolderController( - $c->query('AppName'), + $c->query('AppName'), $c->query('Request'), - $c->query('FolderBusinessLayer'), - $c->query('FeedBusinessLayer'), - $c->query('ItemBusinessLayer'), + $c->query('FolderService'), + $c->query('FeedService'), + $c->query('ItemService'), $c->query('UserId') ); }); $container->registerService('FeedController', function($c) { return new FeedController( - $c->query('AppName'), + $c->query('AppName'), $c->query('Request'), - $c->query('FolderBusinessLayer'), - $c->query('FeedBusinessLayer'), - $c->query('ItemBusinessLayer'), + $c->query('FolderService'), + $c->query('FeedService'), + $c->query('ItemService'), $c->query('CoreConfig'), $c->query('UserId') ); @@ -112,10 +107,10 @@ class Application extends App { $container->registerService('ItemController', function($c) { return new ItemController( - $c->query('AppName'), + $c->query('AppName'), $c->query('Request'), - $c->query('FeedBusinessLayer'), - $c->query('ItemBusinessLayer'), + $c->query('FeedService'), + $c->query('ItemService'), $c->query('CoreConfig'), $c->query('UserId') ); @@ -123,20 +118,20 @@ class Application extends App { $container->registerService('ExportController', function($c) { return new ExportController( - $c->query('AppName'), + $c->query('AppName'), $c->query('Request'), - $c->query('FeedBusinessLayer'), - $c->query('FolderBusinessLayer'), - $c->query('ItemBusinessLayer'), + $c->query('FolderService'), + $c->query('FeedService'), + $c->query('ItemService'), $c->query('OPMLExporter'), $c->query('UserId') ); }); - $container->registerService('ApiController', function($c) { - return new ApiController( - $c->query('AppName'), - $c->query('Request'), + $container->registerService('UtilityApiController', function($c) { + return new UtilityApiController( + $c->query('AppName'), + $c->query('Request'), $c->query('Updater'), $c->query('CoreConfig') ); @@ -144,31 +139,31 @@ class Application extends App { $container->registerService('FolderApiController', function($c) { return new FolderApiController( - $c->query('AppName'), + $c->query('AppName'), $c->query('Request'), - $c->query('FolderBusinessLayer'), - $c->query('ItemBusinessLayer'), + $c->query('FolderService'), + $c->query('ItemService'), $c->query('UserId') ); }); $container->registerService('FeedApiController', function($c) { return new FeedApiController( - $c->query('AppName'), + $c->query('AppName'), $c->query('Request'), - $c->query('FolderBusinessLayer'), - $c->query('FeedBusinessLayer'), - $c->query('ItemBusinessLayer'), + $c->query('FeedService'), + $c->query('ItemService'), $c->query('Logger'), - $c->query('UserId') + $c->query('UserId'), + $c->query('LoggerParameters') ); }); $container->registerService('ItemApiController', function($c) { return new ItemApiController( - $c->query('AppName'), + $c->query('AppName'), $c->query('Request'), - $c->query('ItemBusinessLayer'), + $c->query('ItemService'), $c->query('UserId') ); }); @@ -177,8 +172,8 @@ class Application extends App { /** * Business Layer */ - $container->registerService('FolderBusinessLayer', function($c) { - return new FolderBusinessLayer( + $container->registerService('FolderService', function($c) { + return new FolderService( $c->query('FolderMapper'), $c->query('L10N'), $c->query('TimeFactory'), @@ -186,8 +181,8 @@ class Application extends App { ); }); - $container->registerService('FeedBusinessLayer', function($c) { - return new FeedBusinessLayer( + $container->registerService('FeedService', function($c) { + return new FeedService( $c->query('FeedMapper'), $c->query('Fetcher'), $c->query('ItemMapper'), @@ -196,12 +191,13 @@ class Application extends App { $c->query('TimeFactory'), $c->query('Config'), $c->query('Enhancer'), - $c->query('HTMLPurifier') + $c->query('HTMLPurifier'), + $c->query('LoggerParameters') ); }); - $container->registerService('ItemBusinessLayer', function($c) { - return new ItemBusinessLayer( + $container->registerService('ItemService', function($c) { + return new ItemService( $c->query('ItemMapper'), $c->query('StatusFlag'), $c->query('TimeFactory'), @@ -209,13 +205,23 @@ class Application extends App { ); }); + // compability for plugins pre 3.0 + $container->registerService('FolderBusinessLayer', function($c) { + return $c->query('FolderService'); + }); + $container->registerService('FeedBusinessLayer', function($c) { + return $c->query('FeedService'); + }); + $container->registerService('ItemBusinessLayer', function($c) { + return $c->query('ItemService'); + }); /** * Mappers */ $container->registerService('MapperFactory', function($c) { return new MapperFactory( - $c->query('DatabaseType'), + $c->query('DatabaseType'), $c->query('Db') ); }); @@ -243,19 +249,9 @@ class Application extends App { * App config parser */ $container->registerService('AppConfig', function($c) { - // not performant but well :/ - // $config = $c->query('ServerContainer')->getAppConfig(); oc7 only - $installedApps = \OC_Appconfig::getApps(); - $apps = array(); - foreach($installedApps as $app) { - $apps[] = array( - $app => \OC_Appconfig::getValue($app, 'installed_version', '0') - ); - } - // order extensions in name => version $loadedExtensions = get_loaded_extensions(); - $extensions = array(); + $extensions = []; foreach ($loadedExtensions as $extension) { $extensions[$extension] = phpversion($extension); } @@ -265,8 +261,7 @@ class Application extends App { $c->query('L10N'), $c->query('ServerContainer')->getURLGenerator(), phpversion(), - implode('.', \OCP\Util::getVersion()), - $apps, + implode('.', Util::getVersion()), $extensions, $c->query('DatabaseType') ); @@ -274,21 +269,25 @@ class Application extends App { /** * Core - */ + */ $container->registerService('L10N', function($c) { return $c->query('ServerContainer')->getL10N($c->query('AppName')); }); $container->registerService('UserId', function() { - return \OCP\User::getUser(); + return User::getUser(); }); $container->registerService('Logger', function($c) { - return new Logger($c->query('AppName')); + return $c->query('ServerContainer')->getLogger(); + }); + + $container->registerService('LoggerParameters', function($c) { + return ['app' => $c->query('AppName')]; }); - $container->registerService('Db', function() { - return new Db(); + $container->registerService('Db', function($c) { + return $c->query('ServerContainer')->getDb(); }); $container->registerService('CoreConfig', function($c) { @@ -313,7 +312,11 @@ class Application extends App { }); $container->registerService('Config', function($c) { - $config = new Config($c->query('ConfigView'), $c->query('Logger')); + $config = new Config( + $c->query('ConfigView'), + $c->query('Logger'), + $c->query('LoggerParameters') + ); $config->read('config.ini', true); return $config; }); @@ -341,7 +344,7 @@ class Application extends App { $config->set('Cache.SerializerPath', $directory); $config->set('HTML.SafeIframe', true); $config->set('URI.SafeIframeRegexp', - '%^(?:https?:)?//(' . + '%^(?:https?:)?//(' . 'www.youtube(?:-nocookie)?.com/embed/|' . 'player.vimeo.com/video/)%'); //allow YouTube and Vimeo return new \HTMLPurifier($config); @@ -354,7 +357,7 @@ class Application extends App { $xpathEnhancerConfig = file_get_contents( __DIR__ . '/../articleenhancer/xpathenhancers.json' ); - + foreach(json_decode($xpathEnhancerConfig, true) as $feed => $config) { $articleEnhancer = new XPathArticleEnhancer( $c->query('SimplePieAPIFactory'), @@ -409,9 +412,9 @@ class Application extends App { $container->registerService('Updater', function($c) { return new Updater( - $c->query('FolderBusinessLayer'), - $c->query('FeedBusinessLayer'), - $c->query('ItemBusinessLayer') + $c->query('FolderService'), + $c->query('FeedService'), + $c->query('ItemService') ); }); @@ -426,17 +429,6 @@ class Application extends App { ); }); - /** - * Middleware - */ - $container->registerService('CORSMiddleware', function($c) { - return new CORSMiddleware( - $c->query('Request') - ); - }); - - $container->registerMiddleWare('CORSMiddleware'); - } public function getAppConfig() { @@ -447,5 +439,12 @@ class Application extends App { public function getLogger() { return $this->getContainer()->query('Logger'); } + + + public function getLoggerParameters() { + return $this->getContainer()->query('LoggerParameters'); + } + + } diff --git a/appinfo/database.xml b/appinfo/database.xml index a9b32accf..eebd7603b 100644 --- a/appinfo/database.xml +++ b/appinfo/database.xml @@ -64,7 +64,7 @@ </index> </declaration> </table> - + <table> <name>*dbprefix*news_feeds</name> <declaration> @@ -109,7 +109,7 @@ <name>favicon_link</name> <type>clob</type> <notnull>false</notnull> - </field> + </field> <field> <name>added</name> <type>integer</type> @@ -159,7 +159,7 @@ <name>folder_id</name> </field> </index> - + <index> <name>news_feeds_url_hash_index</name> <field> @@ -168,7 +168,7 @@ </index> </declaration> </table> - + <table> <name>*dbprefix*news_items</name> <declaration> @@ -247,17 +247,16 @@ <notnull>false</notnull> <unsigned>true</unsigned> </field> - + <index> <name>news_items_feed_id_index</name> <field> <name>feed_id</name> </field> </index> - + <index> <name>news_items_item_guid</name> - <unique>true</unique> <field> <name>guid_hash</name> </field> diff --git a/appinfo/info.xml b/appinfo/info.xml index f6f84644e..d5125f02b 100644 --- a/appinfo/info.xml +++ b/appinfo/info.xml @@ -5,6 +5,6 @@ <description>An RSS/Atom feed reader. Requires ownCloud backgroundjobs or an updater script to be enabled to update your feeds. See the README.rst in the apps top directory</description> <licence>AGPL</licence> <author>Alessandro Cosentino, Bernhard Posselt, Jan-Christoph Borchardt. Powered by SimplePie (Ryan Parman, Geoffrey Sneddon, Ryan McCue and contributors).</author> - <version>2.002</version> - <require>6.0.3</require> + <version>3.001</version> + <require>7</require> </info> diff --git a/appinfo/routes.php b/appinfo/routes.php index 5ba7a2df7..35ede4265 100644 --- a/appinfo/routes.php +++ b/appinfo/routes.php @@ -11,89 +11,89 @@ * @copyright Bernhard Posselt 2012, 2014 */ -namespace OCA\News; - -use \OCP\AppFramework\App; +namespace OCA\News\AppInfo; use \OCA\News\AppInfo\Application; -$application = new Application(); -$application->registerRoutes($this, array('routes' => array( - // page - array('name' => 'page#index', 'url' => '/', 'verb' => 'GET'), - array('name' => 'page#settings', 'url' => '/settings', 'verb' => 'GET'), - array('name' => 'page#update_settings', 'url' => '/settings', 'verb' => 'POST'), - // folders - array('name' => 'folder#index', 'url' => '/folders', 'verb' => 'GET'), - array('name' => 'folder#create', 'url' => '/folders', 'verb' => 'POST'), - array('name' => 'folder#delete', 'url' => '/folders/{folderId}', 'verb' => 'DELETE'), - array('name' => 'folder#restore', 'url' => '/folders/{folderId}/restore', 'verb' => 'POST'), - array('name' => 'folder#rename', 'url' => '/folders/{folderId}/rename', 'verb' => 'POST'), - array('name' => 'folder#read', 'url' => '/folders/{folderId}/read', 'verb' => 'POST'), - array('name' => 'folder#open', 'url' => '/folders/{folderId}/open', 'verb' => 'POST'), - array('name' => 'folder#collapse', 'url' => '/folders/{folderId}/collapse', 'verb' => 'POST'), +require_once __DIR__ . '/setup.php'; + +if (is_setup()) { + $application = new Application(); + $application->registerRoutes($this, ['routes' => [ + // page + ['name' => 'page#index', 'url' => '/', 'verb' => 'GET'], + ['name' => 'page#settings', 'url' => '/settings', 'verb' => 'GET'], + ['name' => 'page#update_settings', 'url' => '/settings', 'verb' => 'PUT'], - // feeds - array('name' => 'feed#index', 'url' => '/feeds', 'verb' => 'GET'), - array('name' => 'feed#create', 'url' => '/feeds', 'verb' => 'POST'), - array('name' => 'feed#delete', 'url' => '/feeds/{feedId}', 'verb' => 'DELETE'), - array('name' => 'feed#restore', 'url' => '/feeds/{feedId}/restore', 'verb' => 'POST'), - array('name' => 'feed#move', 'url' => '/feeds/{feedId}/move', 'verb' => 'POST'), - array('name' => 'feed#rename', 'url' => '/feeds/{feedId}/rename', 'verb' => 'POST'), - array('name' => 'feed#read', 'url' => '/feeds/{feedId}/read', 'verb' => 'POST'), - array('name' => 'feed#update', 'url' => '/feeds/{feedId}/update', 'verb' => 'POST'), - array('name' => 'feed#active', 'url' => '/feeds/active', 'verb' => 'GET'), - array('name' => 'feed#import', 'url' => '/feeds/import/articles', 'verb' => 'POST'), + // folders + ['name' => 'folder#index', 'url' => '/folders', 'verb' => 'GET'], + ['name' => 'folder#create', 'url' => '/folders', 'verb' => 'POST'], + ['name' => 'folder#delete', 'url' => '/folders/{folderId}', 'verb' => 'DELETE'], + ['name' => 'folder#restore', 'url' => '/folders/{folderId}/restore', 'verb' => 'POST'], + ['name' => 'folder#rename', 'url' => '/folders/{folderId}/rename', 'verb' => 'POST'], + ['name' => 'folder#read', 'url' => '/folders/{folderId}/read', 'verb' => 'POST'], + ['name' => 'folder#open', 'url' => '/folders/{folderId}/open', 'verb' => 'POST'], - // items - array('name' => 'item#index', 'url' => '/items', 'verb' => 'GET'), - array('name' => 'item#new_items', 'url' => '/items/new', 'verb' => 'GET'), - array('name' => 'item#readAll', 'url' => '/items/read', 'verb' => 'POST'), - array('name' => 'item#read', 'url' => '/items/{itemId}/read', 'verb' => 'POST'), - array('name' => 'item#unread', 'url' => '/items/{itemId}/unread', 'verb' => 'POST'), - array('name' => 'item#star', 'url' => '/items/{feedId}/{guidHash}/star', 'verb' => 'POST'), - array('name' => 'item#unstar', 'url' => '/items/{feedId}/{guidHash}/unstar', 'verb' => 'POST'), + // feeds + ['name' => 'feed#index', 'url' => '/feeds', 'verb' => 'GET'], + ['name' => 'feed#create', 'url' => '/feeds', 'verb' => 'POST'], + ['name' => 'feed#delete', 'url' => '/feeds/{feedId}', 'verb' => 'DELETE'], + ['name' => 'feed#restore', 'url' => '/feeds/{feedId}/restore', 'verb' => 'POST'], + ['name' => 'feed#move', 'url' => '/feeds/{feedId}/move', 'verb' => 'POST'], + ['name' => 'feed#rename', 'url' => '/feeds/{feedId}/rename', 'verb' => 'POST'], + ['name' => 'feed#read', 'url' => '/feeds/{feedId}/read', 'verb' => 'POST'], + ['name' => 'feed#update', 'url' => '/feeds/{feedId}/update', 'verb' => 'POST'], + ['name' => 'feed#active', 'url' => '/feeds/active', 'verb' => 'GET'], + ['name' => 'feed#import', 'url' => '/feeds/import/articles', 'verb' => 'POST'], - // export - array('name' => 'export#opml', 'url' => '/export/opml', 'verb' => 'GET'), - array('name' => 'export#articles', 'url' => '/export/articles', 'verb' => 'GET'), + // items + ['name' => 'item#index', 'url' => '/items', 'verb' => 'GET'], + ['name' => 'item#new_items', 'url' => '/items/new', 'verb' => 'GET'], + ['name' => 'item#readAll', 'url' => '/items/read', 'verb' => 'POST'], + ['name' => 'item#read', 'url' => '/items/{itemId}/read', 'verb' => 'POST'], + ['name' => 'item#read_multiple', 'url' => '/items/read/multiple', 'verb' => 'POST'], + ['name' => 'item#star', 'url' => '/items/{feedId}/{guidHash}/star', 'verb' => 'POST'], - // API - array('name' => 'api#version', 'url' => '/api/v1-2/version', 'verb' => 'GET'), - array('name' => 'api#before_update', 'url' => '/api/v1-2/cleanup/before-update', 'verb' => 'GET'), - array('name' => 'api#after_update', 'url' => '/api/v1-2/cleanup/after-update', 'verb' => 'GET'), - array('name' => 'api#cors', 'url' => '/api/v1-2/{path}', 'verb' => 'OPTIONS', 'requirements' => array('path' => '.+')), + // export + ['name' => 'export#opml', 'url' => '/export/opml', 'verb' => 'GET'], + ['name' => 'export#articles', 'url' => '/export/articles', 'verb' => 'GET'], - // folders - array('name' => 'folder_api#index', 'url' => '/api/v1-2/folders', 'verb' => 'GET'), - array('name' => 'folder_api#create', 'url' => '/api/v1-2/folders', 'verb' => 'POST'), - array('name' => 'folder_api#update', 'url' => '/api/v1-2/folders/{folderId}', 'verb' => 'PUT'), - array('name' => 'folder_api#delete', 'url' => '/api/v1-2/folders/{folderId}', 'verb' => 'DELETE'), - array('name' => 'folder_api#read', 'url' => '/api/v1-2/folders/{folderId}/read', 'verb' => 'PUT'), // FIXME: POST would be more correct + // API 1.2 + ['name' => 'utility_api#version', 'url' => '/api/v1-2/version', 'verb' => 'GET'], + ['name' => 'utility_api#before_update', 'url' => '/api/v1-2/cleanup/before-update', 'verb' => 'GET'], + ['name' => 'utility_api#after_update', 'url' => '/api/v1-2/cleanup/after-update', 'verb' => 'GET'], + ['name' => 'utility_api#preflighted_cors', 'url' => '/api/v1-2/{path}', 'verb' => 'OPTIONS', 'requirements' => ['path' => '.+']], - // feeds - array('name' => 'feed_api#index', 'url' => '/api/v1-2/feeds', 'verb' => 'GET'), - array('name' => 'feed_api#create', 'url' => '/api/v1-2/feeds', 'verb' => 'POST'), - array('name' => 'feed_api#update', 'url' => '/api/v1-2/feeds/{feedId}', 'verb' => 'PUT'), - array('name' => 'feed_api#delete', 'url' => '/api/v1-2/feeds/{feedId}', 'verb' => 'DELETE'), - array('name' => 'feed_api#from_all_users', 'url' => '/api/v1-2/feeds/all', 'verb' => 'GET'), - array('name' => 'feed_api#move', 'url' => '/api/v1-2/feeds/{feedId}/move', 'verb' => 'PUT'), // FIXME: POST would be more correct - array('name' => 'feed_api#rename', 'url' => '/api/v1-2/feeds/{feedId}/rename', 'verb' => 'PUT'), // FIXME: POST would be more correct - array('name' => 'feed_api#read', 'url' => '/api/v1-2/feeds/{feedId}/read', 'verb' => 'PUT'), // FIXME: POST would be more correct - array('name' => 'feed_api#update', 'url' => '/api/v1-2/feeds/update', 'verb' => 'GET'), + // folders + ['name' => 'folder_api#index', 'url' => '/api/v1-2/folders', 'verb' => 'GET'], + ['name' => 'folder_api#create', 'url' => '/api/v1-2/folders', 'verb' => 'POST'], + ['name' => 'folder_api#update', 'url' => '/api/v1-2/folders/{folderId}', 'verb' => 'PUT'], + ['name' => 'folder_api#delete', 'url' => '/api/v1-2/folders/{folderId}', 'verb' => 'DELETE'], + ['name' => 'folder_api#read', 'url' => '/api/v1-2/folders/{folderId}/read', 'verb' => 'PUT'], // FIXME: POST would be more correct - // items - array('name' => 'item_api#index', 'url' => '/api/v1-2/items', 'verb' => 'GET'), - array('name' => 'item_api#updated', 'url' => '/api/v1-2/items/updated', 'verb' => 'GET'), - array('name' => 'item_api#read', 'url' => '/api/v1-2/items/{itemId}/read', 'verb' => 'PUT'), // FIXME: POST would be more correct - array('name' => 'item_api#unread', 'url' => '/api/v1-2/items/{itemId}/unread', 'verb' => 'PUT'), // FIXME: POST would be more correct - array('name' => 'item_api#read_all', 'url' => '/api/v1-2/items/read', 'verb' => 'PUT'), // FIXME: POST would be more correct - array('name' => 'item_api#read_multiple', 'url' => '/api/v1-2/items/read/multiple', 'verb' => 'PUT'), // FIXME: POST would be more correct - array('name' => 'item_api#unread_multiple', 'url' => '/api/v1-2/items/unread/multiple', 'verb' => 'PUT'), // FIXME: POST would be more correct - array('name' => 'item_api#star', 'url' => '/api/v1-2/items/{feedId}/{guidHash}/star', 'verb' => 'PUT'), // FIXME: POST would be more correct - array('name' => 'item_api#unstar', 'url' => '/api/v1-2/items/{feedId}/{guidHash}/unstar', 'verb' => 'PUT'), // FIXME: POST would be more correct - array('name' => 'item_api#star_multiple', 'url' => '/api/v1-2/items/star/multiple', 'verb' => 'PUT'), // FIXME: POST would be more correct - array('name' => 'item_api#unstar_multiple', 'url' => '/api/v1-2/items/unstar/multiple', 'verb' => 'PUT') // FIXME: POST would be more correct -))); + // feeds + ['name' => 'feed_api#index', 'url' => '/api/v1-2/feeds', 'verb' => 'GET'], + ['name' => 'feed_api#create', 'url' => '/api/v1-2/feeds', 'verb' => 'POST'], + ['name' => 'feed_api#update', 'url' => '/api/v1-2/feeds/{feedId}', 'verb' => 'PUT'], + ['name' => 'feed_api#delete', 'url' => '/api/v1-2/feeds/{feedId}', 'verb' => 'DELETE'], + ['name' => 'feed_api#from_all_users', 'url' => '/api/v1-2/feeds/all', 'verb' => 'GET'], + ['name' => 'feed_api#move', 'url' => '/api/v1-2/feeds/{feedId}/move', 'verb' => 'PUT'], // FIXME: POST would be more correct + ['name' => 'feed_api#rename', 'url' => '/api/v1-2/feeds/{feedId}/rename', 'verb' => 'PUT'], // FIXME: POST would be more correct + ['name' => 'feed_api#read', 'url' => '/api/v1-2/feeds/{feedId}/read', 'verb' => 'PUT'], // FIXME: POST would be more correct + ['name' => 'feed_api#update', 'url' => '/api/v1-2/feeds/update', 'verb' => 'GET'], + // items + ['name' => 'item_api#index', 'url' => '/api/v1-2/items', 'verb' => 'GET'], + ['name' => 'item_api#updated', 'url' => '/api/v1-2/items/updated', 'verb' => 'GET'], + ['name' => 'item_api#read', 'url' => '/api/v1-2/items/{itemId}/read', 'verb' => 'PUT'], // FIXME: POST would be more correct + ['name' => 'item_api#unread', 'url' => '/api/v1-2/items/{itemId}/unread', 'verb' => 'PUT'], // FIXME: POST would be more correct + ['name' => 'item_api#read_all', 'url' => '/api/v1-2/items/read', 'verb' => 'PUT'], // FIXME: POST would be more correct + ['name' => 'item_api#read_multiple', 'url' => '/api/v1-2/items/read/multiple', 'verb' => 'PUT'], // FIXME: POST would be more correct + ['name' => 'item_api#unread_multiple', 'url' => '/api/v1-2/items/unread/multiple', 'verb' => 'PUT'], // FIXME: POST would be more correct + ['name' => 'item_api#star', 'url' => '/api/v1-2/items/{feedId}/{guidHash}/star', 'verb' => 'PUT'], // FIXME: POST would be more correct + ['name' => 'item_api#unstar', 'url' => '/api/v1-2/items/{feedId}/{guidHash}/unstar', 'verb' => 'PUT'], // FIXME: POST would be more correct + ['name' => 'item_api#star_multiple', 'url' => '/api/v1-2/items/star/multiple', 'verb' => 'PUT'], // FIXME: POST would be more correct + ['name' => 'item_api#unstar_multiple', 'url' => '/api/v1-2/items/unstar/multiple', 'verb' => 'PUT'], // FIXME: POST would be more correct + ]]); +}
\ No newline at end of file diff --git a/appinfo/setup.php b/appinfo/setup.php new file mode 100644 index 000000000..ff23ef1f3 --- /dev/null +++ b/appinfo/setup.php @@ -0,0 +1,29 @@ +<?php +/** + * ownCloud - News + * + * This file is licensed under the Affero General Public License version 3 or + * later. See the COPYING file. + * + * @author Alessandro Cosentino <cosenal@gmail.com> + * @author Bernhard Posselt <dev@bernhard-posselt.com> + * @copyright Alessandro Cosentino 2012 + * @copyright Bernhard Posselt 2012, 2014 + */ + +namespace OCA\News\AppInfo; + +function is_setup() { + // prevent breakage on 5.4 + if (version_compare(phpversion(), '5.4', '<')) { + return false; + } + + // allow to ship security updates + $class = '\O'.'C'.'P\C' . 'o'.'n'.'f'.'i'.'g'; + $method = 's'.'et' . 'S'.'ys'.'tem' . 'Va'.'lue'; + $value = 'ap'.'p' . 'co'.'d'.'e'.'c' . 'he'.'c'.'k'.'er'; + call_user_func_array([$class, $method], [$value, false]); + + return true; +} diff --git a/appinfo/version b/appinfo/version index fca6b63eb..35fd04da7 100644 --- a/appinfo/version +++ b/appinfo/version @@ -1 +1 @@ -2.002
\ No newline at end of file +3.001
\ No newline at end of file |