diff options
author | Bernhard Posselt <dev@bernhard-posselt.com> | 2014-04-09 16:10:48 +0200 |
---|---|---|
committer | Bernhard Posselt <dev@bernhard-posselt.com> | 2014-04-09 22:52:27 +0200 |
commit | 643fa4624dd7ba2db1349f16131bf330aeee3387 (patch) | |
tree | 73bc787a3eb1ed5f53ab932187546c980ac50bb5 /api | |
parent | efe9db1e064c9736fe35c27040ee60fa28ca8d4d (diff) |
port to internal controller, some routes are still broken
Diffstat (limited to 'api')
-rw-r--r-- | api/feedapi.php | 236 | ||||
-rw-r--r-- | api/folderapi.php | 170 | ||||
-rw-r--r-- | api/itemapi.php | 276 | ||||
-rw-r--r-- | api/newsapi.php | 106 |
4 files changed, 0 insertions, 788 deletions
diff --git a/api/feedapi.php b/api/feedapi.php deleted file mode 100644 index 0d9d158f1..000000000 --- a/api/feedapi.php +++ /dev/null @@ -1,236 +0,0 @@ -<?php - -/** -* ownCloud - News -* -* @author Alessandro Cosentino -* @author Bernhard Posselt -* @copyright 2012 Alessandro Cosentino cosenal@gmail.com -* @copyright 2012 Bernhard Posselt dev@bernhard-posselt.com -* -* This library is free software; you can redistribute it and/or -* modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE -* License as published by the Free Software Foundation; either -* version 3 of the License, or any later version. -* -* This library is distributed in the hope that it will be useful, -* but WITHOUT ANY WARRANTY; without even the implied warranty of -* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -* GNU AFFERO GENERAL PUBLIC LICENSE for more details. -* -* You should have received a copy of the GNU Affero General Public -* License along with this library. If not, see <http://www.gnu.org/licenses/>. -* -*/ - -namespace OCA\News\API; - -use \OCP\IRequest; -use \OCP\AppFramework\Controller; -use \OCP\AppFramework\Http; -use \OCP\AppFramework\Http\JSONResponse; - -use \OCA\News\Core\API; -use \OCA\News\BusinessLayer\FeedBusinessLayer; -use \OCA\News\BusinessLayer\FolderBusinessLayer; -use \OCA\News\BusinessLayer\ItemBusinessLayer; -use \OCA\News\BusinessLayer\BusinessLayerException; -use \OCA\News\BusinessLayer\BusinessLayerConflictException; - - -class FeedAPI extends Controller { - - private $itemBusinessLayer; - private $feedBusinessLayer; - private $folderBusinessLayer; - private $api; - - public function __construct(API $api, - IRequest $request, - FolderBusinessLayer $folderBusinessLayer, - FeedBusinessLayer $feedBusinessLayer, - ItemBusinessLayer $itemBusinessLayer){ - parent::__construct($api->getAppName(), $request); - $this->folderBusinessLayer = $folderBusinessLayer; - $this->feedBusinessLayer = $feedBusinessLayer; - $this->itemBusinessLayer = $itemBusinessLayer; - $this->api = $api; - } - - - /** - * @NoAdminRequired - * @NoCSRFRequired - * @API - */ - public function getAll() { - $userId = $this->api->getUserId(); - - $result = array( - 'feeds' => array(), - 'starredCount' => $this->itemBusinessLayer->starredCount($userId) - ); - - foreach ($this->feedBusinessLayer->findAll($userId) as $feed) { - array_push($result['feeds'], $feed->toAPI()); - } - - // check case when there are no items - try { - $result['newestItemId'] = - $this->itemBusinessLayer->getNewestItemId($userId); - } catch(BusinessLayerException $ex) {} - - return new JSONResponse($result); - } - - - /** - * @NoAdminRequired - * @NoCSRFRequired - * @API - */ - public function create() { - $userId = $this->api->getUserId(); - $feedUrl = $this->params('url'); - $folderId = (int) $this->params('folderId', 0); - - try { - $this->feedBusinessLayer->purgeDeleted($userId, false); - - $feed = $this->feedBusinessLayer->create($feedUrl, $folderId, $userId); - $result = array( - 'feeds' => array($feed->toAPI()) - ); - - try { - $result['newestItemId'] = - $this->itemBusinessLayer->getNewestItemId($userId); - } catch(BusinessLayerException $ex) {} - - return new JSONResponse($result); - - } catch(BusinessLayerConflictException $ex) { - return new JSONResponse(array('message' => $ex->getMessage()), - Http::STATUS_CONFLICT); - } catch(BusinessLayerException $ex) { - return new JSONResponse(array('message' => $ex->getMessage()), - Http::STATUS_NOT_FOUND); - } - } - - - /** - * @NoAdminRequired - * @NoCSRFRequired - * @API - */ - public function delete() { - $userId = $this->api->getUserId(); - $feedId = (int) $this->params('feedId'); - - try { - $this->feedBusinessLayer->delete($feedId, $userId); - return new JSONResponse(); - } catch(BusinessLayerException $ex) { - return new JSONResponse(array('message' => $ex->getMessage()), - Http::STATUS_NOT_FOUND); - } - } - - - /** - * @NoAdminRequired - * @NoCSRFRequired - * @API - */ - public function read() { - $userId = $this->api->getUserId(); - $feedId = (int) $this->params('feedId'); - $newestItemId = (int) $this->params('newestItemId'); - - $this->itemBusinessLayer->readFeed($feedId, $newestItemId, $userId); - return new JSONResponse(); - } - - - /** - * @NoAdminRequired - * @NoCSRFRequired - * @API - */ - public function move() { - $userId = $this->api->getUserId(); - $feedId = (int) $this->params('feedId'); - $folderId = (int) $this->params('folderId'); - - try { - $this->feedBusinessLayer->move($feedId, $folderId, $userId); - return new JSONResponse(); - } catch(BusinessLayerException $ex) { - return new JSONResponse(array('message' => $ex->getMessage()), - Http::STATUS_NOT_FOUND); - } - } - - - /** - * @NoAdminRequired - * @NoCSRFRequired - * @API - */ - public function rename() { - $userId = $this->api->getUserId(); - $feedId = (int) $this->params('feedId'); - $feedTitle = $this->params('feedTitle'); - - try { - $this->feedBusinessLayer->rename($feedId, $feedTitle, $userId); - return new JSONResponse(); - } catch(BusinessLayerException $ex) { - return new JSONResponse(array('message' => $ex->getMessage()), - Http::STATUS_NOT_FOUND); - } - } - - - /** - * @NoCSRFRequired - * @API - */ - public function getAllFromAllUsers() { - $feeds = $this->feedBusinessLayer->findAllFromAllUsers(); - $result = array('feeds' => array()); - - foreach ($feeds as $feed) { - array_push($result['feeds'], array( - 'id' => $feed->getId(), - 'userId' => $feed->getUserId() - )); - } - - return new JSONResponse($result); - } - - - /** - * @NoCSRFRequired - * @API - */ - public function update() { - $userId = $this->params('userId'); - $feedId = (int) $this->params('feedId'); - - try { - $this->feedBusinessLayer->update($feedId, $userId); - // ignore update failure (feed could not be reachable etc, we dont care) - } catch(\Exception $ex) { - $this->api->log('Could not update feed ' . $ex->getMessage(), - 'debug'); - } - return new JSONResponse(); - - } - - -} diff --git a/api/folderapi.php b/api/folderapi.php deleted file mode 100644 index ba35462f5..000000000 --- a/api/folderapi.php +++ /dev/null @@ -1,170 +0,0 @@ -<?php - -/** -* ownCloud - News -* -* @author Alessandro Cosentino -* @author Bernhard Posselt -* @copyright 2012 Alessandro Cosentino cosenal@gmail.com -* @copyright 2012 Bernhard Posselt dev@bernhard-posselt.com -* -* This library is free software; you can redistribute it and/or -* modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE -* License as published by the Free Software Foundation; either -* version 3 of the License, or any later version. -* -* This library is distributed in the hope that it will be useful, -* but WITHOUT ANY WARRANTY; without even the implied warranty of -* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -* GNU AFFERO GENERAL PUBLIC LICENSE for more details. -* -* You should have received a copy of the GNU Affero General Public -* License along with this library. If not, see <http://www.gnu.org/licenses/>. -* -*/ - -namespace OCA\News\API; - -use \OCP\IRequest; -use \OCP\AppFramework\Controller; -use \OCP\AppFramework\Http; -use \OCP\AppFramework\Http\JSONResponse; - -use \OCA\News\Core\API; -use \OCA\News\BusinessLayer\FolderBusinessLayer; -use \OCA\News\BusinessLayer\ItemBusinessLayer; -use \OCA\News\BusinessLayer\BusinessLayerException; -use \OCA\News\BusinessLayer\BusinessLayerConflictException; -use \OCA\News\BusinessLayer\BusinessLayerValidationException; - - -class FolderAPI extends Controller { - - private $folderBusinessLayer; - private $itemBusinessLayer; - private $api; - - public function __construct(API $api, - IRequest $request, - FolderBusinessLayer $folderBusinessLayer, - ItemBusinessLayer $itemBusinessLayer){ - parent::__construct($api->getAppName(), $request); - $this->folderBusinessLayer = $folderBusinessLayer; - $this->itemBusinessLayer = $itemBusinessLayer; - $this->api = $api; - } - - - /** - * @NoAdminRequired - * @NoCSRFRequired - * @API - */ - public function getAll() { - $userId = $this->api->getUserId(); - $result = array( - 'folders' => array() - ); - - foreach ($this->folderBusinessLayer->findAll($userId) as $folder) { - array_push($result['folders'], $folder->toAPI()); - } - - return new JSONResponse($result); - } - - - /** - * @NoAdminRequired - * @NoCSRFRequired - * @API - */ - public function create() { - $userId = $this->api->getUserId(); - $folderName = $this->params('name'); - $result = array( - 'folders' => array() - ); - - try { - $this->folderBusinessLayer->purgeDeleted($userId, false); - $folder = $this->folderBusinessLayer->create($folderName, $userId); - array_push($result['folders'], $folder->toAPI()); - - return new JSONResponse($result); - - } catch(BusinessLayerValidationException $ex) { - return new JSONResponse(array('message' => $ex->getMessage()), - Http::STATUS_UNPROCESSABLE_ENTITY); - - } catch(BusinessLayerConflictException $ex) { - return new JSONResponse(array('message' => $ex->getMessage()), - Http::STATUS_CONFLICT); - } - } - - - /** - * @NoAdminRequired - * @NoCSRFRequired - * @API - */ - public function delete() { - $userId = $this->api->getUserId(); - $folderId = (int) $this->params('folderId'); - - try { - $this->folderBusinessLayer->delete($folderId, $userId); - return new JSONResponse(); - } catch(BusinessLayerException $ex) { - return new JSONResponse(array('message' => $ex->getMessage()), - Http::STATUS_NOT_FOUND); - } - } - - - /** - * @NoAdminRequired - * @NoCSRFRequired - * @API - */ - public function update() { - $userId = $this->api->getUserId(); - $folderId = (int) $this->params('folderId'); - $folderName = $this->params('name'); - - try { - $this->folderBusinessLayer->rename($folderId, $folderName, $userId); - return new JSONResponse(); - - } catch(BusinessLayerValidationException $ex) { - return new JSONResponse(array('message' => $ex->getMessage()), - Http::STATUS_UNPROCESSABLE_ENTITY); - - } catch(BusinessLayerConflictException $ex) { - return new JSONResponse(array('message' => $ex->getMessage()), - Http::STATUS_CONFLICT); - - } catch(BusinessLayerException $ex) { - return new JSONResponse(array('message' => $ex->getMessage()), - Http::STATUS_NOT_FOUND); - } - } - - - /** - * @NoAdminRequired - * @NoCSRFRequired - * @API - */ - public function read() { - $userId = $this->api->getUserId(); - $folderId = (int) $this->params('folderId'); - $newestItemId = (int) $this->params('newestItemId'); - - $this->itemBusinessLayer->readFolder($folderId, $newestItemId, $userId); - return new JSONResponse(); - } - - -} diff --git a/api/itemapi.php b/api/itemapi.php deleted file mode 100644 index c21b5817f..000000000 --- a/api/itemapi.php +++ /dev/null @@ -1,276 +0,0 @@ -<?php - -/** -* ownCloud - News -* -* @author Alessandro Cosentino -* @author Bernhard Posselt -* @copyright 2012 Alessandro Cosentino cosenal@gmail.com -* @copyright 2012 Bernhard Posselt dev@bernhard-posselt.com -* -* This library is free software; you can redistribute it and/or -* modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE -* License as published by the Free Software Foundation; either -* version 3 of the License, or any later version. -* -* This library is distributed in the hope that it will be useful, -* but WITHOUT ANY WARRANTY; without even the implied warranty of -* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -* GNU AFFERO GENERAL PUBLIC LICENSE for more details. -* -* You should have received a copy of the GNU Affero General Public -* License along with this library. If not, see <http://www.gnu.org/licenses/>. -* -*/ - -namespace OCA\News\API; - -use \OCP\IRequest; -use \OCP\AppFramework\Controller; -use \OCP\AppFramework\Http; -use \OCP\AppFramework\Http\JSONResponse; - -use \OCA\News\BusinessLayer\ItemBusinessLayer; -use \OCA\News\BusinessLayer\BusinessLayerException; -use \OCA\News\Core\API; - -class ItemAPI extends Controller { - - private $itemBusinessLayer; - private $api; - - public function __construct(API $api, - IRequest $request, - ItemBusinessLayer $itemBusinessLayer){ - parent::__construct($api->getAppName(), $request); - $this->itemBusinessLayer = $itemBusinessLayer; - $this->api = $api; - } - - - /** - * @NoAdminRequired - * @NoCSRFRequired - * @API - */ - public function getAll() { - $result = array( - 'items' => array() - ); - - $userId = $this->api->getUserId(); - $batchSize = (int) $this->params('batchSize', 20); - $offset = (int) $this->params('offset', 0); - $type = (int) $this->params('type'); - $id = (int) $this->params('id'); - $showAll = $this->params('getRead'); - - if($showAll === 'true' || $showAll === true) { - $showAll = true; - } else { - $showAll = false; - } - - $items = $this->itemBusinessLayer->findAll( - $id, - $type, - $batchSize, - $offset, - $showAll, - $userId - ); - - foreach ($items as $item) { - array_push($result['items'], $item->toAPI()); - } - - return new JSONResponse($result); - } - - - /** - * @NoAdminRequired - * @NoCSRFRequired - * @API - */ - public function getUpdated() { - $result = array( - 'items' => array() - ); - - $userId = $this->api->getUserId(); - $lastModified = (int) $this->params('lastModified', 0); - $type = (int) $this->params('type'); - $id = (int) $this->params('id'); - - $items = $this->itemBusinessLayer->findAllNew( - $id, - $type, - $lastModified, - true, - $userId - ); - - foreach ($items as $item) { - array_push($result['items'], $item->toAPI()); - } - - return new JSONResponse($result); - } - - - private function setRead($isRead) { - $userId = $this->api->getUserId(); - $itemId = (int) $this->params('itemId'); - try { - $this->itemBusinessLayer->read($itemId, $isRead, $userId); - return new JSONResponse(); - } catch(BusinessLayerException $ex){ - return new JSONResponse(array('message' => $ex->getMessage()), - Http::STATUS_NOT_FOUND); - } - } - - - private function setStarred($isStarred) { - $userId = $this->api->getUserId(); - $feedId = (int) $this->params('feedId'); - $guidHash = $this->params('guidHash'); - try { - $this->itemBusinessLayer->star($feedId, $guidHash, $isStarred, $userId); - return new JSONResponse(); - } catch(BusinessLayerException $ex){ - return new JSONResponse(array('message' => $ex->getMessage()), - Http::STATUS_NOT_FOUND); - } - } - - - /** - * @NoAdminRequired - * @NoCSRFRequired - * @API - */ - public function read() { - return $this->setRead(true); - } - - - /** - * @NoAdminRequired - * @NoCSRFRequired - * @API - */ - public function unread() { - return $this->setRead(false); - } - - - /** - * @NoAdminRequired - * @NoCSRFRequired - * @API - */ - public function star() { - return $this->setStarred(true); - } - - - /** - * @NoAdminRequired - * @NoCSRFRequired - * @API - */ - public function unstar() { - return $this->setStarred(false); - } - - - /** - * @NoAdminRequired - * @NoCSRFRequired - * @API - */ - public function readAll() { - $userId = $this->api->getUserId(); - $newestItemId = (int) $this->params('newestItemId'); - - $this->itemBusinessLayer->readAll($newestItemId, $userId); - return new JSONResponse(); - } - - - private function setMultipleRead($isRead) { - $userId = $this->api->getUserId(); - $items = $this->params('items'); - - foreach($items as $id) { - try { - $this->itemBusinessLayer->read($id, $isRead, $userId); - } catch(BusinessLayerException $ex) { - continue; - } - } - - return new JSONResponse(); - } - - - /** - * @NoAdminRequired - * @NoCSRFRequired - * @API - */ - public function readMultiple() { - return $this->setMultipleRead(true); - } - - - /** - * @NoAdminRequired - * @NoCSRFRequired - * @API - */ - public function unreadMultiple() { - return $this->setMultipleRead(false); - } - - - private function setMultipleStarred($isStarred) { - $userId = $this->api->getUserId(); - $items = $this->params('items'); - - foreach($items as $item) { - try { - $this->itemBusinessLayer->star($item['feedId'], - $item['guidHash'], $isStarred, $userId); - } catch(BusinessLayerException $ex) { - continue; - } - } - - return new JSONResponse(); - } - - - /** - * @NoAdminRequired - * @NoCSRFRequired - * @API - */ - public function starMultiple() { - return $this->setMultipleStarred(true); - } - - - /** - * @NoAdminRequired - * @NoCSRFRequired - * @API - */ - public function unstarMultiple() { - return $this->setMultipleStarred(false); - } - - -} diff --git a/api/newsapi.php b/api/newsapi.php deleted file mode 100644 index 151afedf3..000000000 --- a/api/newsapi.php +++ /dev/null @@ -1,106 +0,0 @@ -<?php - -/** -* ownCloud - News -* -* @author Alessandro Cosentino -* @author Bernhard Posselt -* @copyright 2012 Alessandro Cosentino cosenal@gmail.com -* @copyright 2012 Bernhard Posselt dev@bernhard-posselt.com -* -* This library is free software; you can redistribute it and/or -* modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE -* License as published by the Free Software Foundation; either -* version 3 of the License, or any later version. -* -* This library is distributed in the hope that it will be useful, -* but WITHOUT ANY WARRANTY; without even the implied warranty of -* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -* GNU AFFERO GENERAL PUBLIC LICENSE for more details. -* -* You should have received a copy of the GNU Affero General Public -* License along with this library. If not, see <http://www.gnu.org/licenses/>. -* -*/ - -namespace OCA\News\API; - -use \OCP\IRequest; -use \OCP\AppFramework\Controller; -use \OCP\AppFramework\Http; -use \OCP\AppFramework\Http\JSONResponse; -use \OCP\AppFramework\Http\Response; - -use \OCA\News\Utility\Updater; -use \OCA\News\Core\API; - -class NewsAPI extends Controller { - - private $updater; - private $api; - - public function __construct(API $api, IRequest $request, Updater $updater){ - parent::__construct($api->getAppName(), $request); - $this->updater = $updater; - $this->api = $api; - } - - - /** - * @NoAdminRequired - * @NoCSRFRequired - * @API - */ - public function version() { - $version = $this->api->getAppValue('installed_version'); - $response = new JSONResponse(array('version' => $version)); - return $response; - } - - - /** - * @NoCSRFRequired - * @API - */ - public function beforeUpdate() { - $this->updater->beforeUpdate(); - return new JSONResponse(); - } - - - /** - * @NoCSRFRequired - * @API - */ - public function afterUpdate() { - $this->updater->afterUpdate(); - return new JSONResponse(); - } - - - /** - * @NoAdminRequired - * @NoCSRFRequired - * @PublicPage - */ - public function cors() { - // needed for webapps access due to cross origin request policy - if(isset($this->request->server['HTTP_ORIGIN'])) { - $origin = $this->request->server['HTTP_ORIGIN']; - } else { - $origin = '*'; - } - - $response = new Response(); - $response->addHeader('Access-Control-Allow-Origin', $origin); - $response->addHeader('Access-Control-Allow-Methods', - 'PUT, POST, GET, DELETE'); - $response->addHeader('Access-Control-Allow-Credentials', 'true'); - $response->addHeader('Access-Control-Max-Age', '1728000'); - $response->addHeader('Access-Control-Allow-Headers', - 'Authorization, Content-Type'); - return $response; - } - - -} |