diff options
Diffstat (limited to 'controller/feedapicontroller.php')
-rw-r--r-- | controller/feedapicontroller.php | 91 |
1 files changed, 50 insertions, 41 deletions
diff --git a/controller/feedapicontroller.php b/controller/feedapicontroller.php index 05c50543e..883732c87 100644 --- a/controller/feedapicontroller.php +++ b/controller/feedapicontroller.php @@ -14,11 +14,11 @@ namespace OCA\News\Controller; use \OCP\IRequest; -use \OCP\AppFramework\Controller; +use \OCP\ILogger; +use \OCP\AppFramework\ApiController; use \OCP\AppFramework\Http; use \OCP\AppFramework\Http\JSONResponse; -use \OCA\News\Core\Logger; use \OCA\News\BusinessLayer\FeedBusinessLayer; use \OCA\News\BusinessLayer\FolderBusinessLayer; use \OCA\News\BusinessLayer\ItemBusinessLayer; @@ -26,34 +26,37 @@ use \OCA\News\BusinessLayer\BusinessLayerException; use \OCA\News\BusinessLayer\BusinessLayerConflictException; -class FeedApiController extends Controller { +class FeedApiController extends ApiController { private $itemBusinessLayer; private $feedBusinessLayer; private $folderBusinessLayer; private $userId; private $logger; + private $loggerParams; public function __construct($appName, IRequest $request, FolderBusinessLayer $folderBusinessLayer, FeedBusinessLayer $feedBusinessLayer, ItemBusinessLayer $itemBusinessLayer, - Logger $logger, - $userId){ + ILogger $logger, + $userId, + $loggerParams){ parent::__construct($appName, $request); $this->folderBusinessLayer = $folderBusinessLayer; $this->feedBusinessLayer = $feedBusinessLayer; $this->itemBusinessLayer = $itemBusinessLayer; $this->userId = $userId; $this->logger = $logger; + $this->loggerParams = $loggerParams; } /** * @NoAdminRequired * @NoCSRFRequired - * @API + * @CORS */ public function index() { @@ -62,56 +65,66 @@ class FeedApiController extends Controller { 'starredCount' => $this->itemBusinessLayer->starredCount($this->userId) ); - foreach ($this->feedBusinessLayer->findAll($this->userId) as $feed) { + $feeds = $this->feedBusinessLayer->findAll($this->userId); + foreach ($feeds as $feed) { array_push($result['feeds'], $feed->toAPI()); } // check case when there are no items try { - $result['newestItemId'] = - $this->itemBusinessLayer->getNewestItemId($this->userId); + $result['newestItemId'] = $this->itemBusinessLayer + ->getNewestItemId($this->userId); // An exception occurs if there is a newest item. If there is none, // simply ignore it and do not add the newestItemId } catch(BusinessLayerException $ex) {} - return new JSONResponse($result); + return $result; } /** * @NoAdminRequired * @NoCSRFRequired - * @API + * @CORS + * + * @param string $url + * @param int $folderId */ - public function create() { - $feedUrl = $this->params('url'); - $folderId = (int) $this->params('folderId', 0); - + public function create($url, $folderId=0) { try { $this->feedBusinessLayer->purgeDeleted($this->userId, false); - $feed = $this->feedBusinessLayer->create($feedUrl, $folderId, $this->userId); + $feed = $this->feedBusinessLayer->create($url, $folderId, + $this->userId); $result = array( 'feeds' => array($feed->toAPI()) ); try { - $result['newestItemId'] = - $this->itemBusinessLayer->getNewestItemId($this->userId); + $result['newestItemId'] = $this->itemBusinessLayer + ->getNewestItemId($this->userId); // An exception occurs if there is a newest item. If there is none, // simply ignore it and do not add the newestItemId } catch(BusinessLayerException $ex) {} - return new JSONResponse($result); + return $result; } catch(BusinessLayerConflictException $ex) { - return new JSONResponse(array('message' => $ex->getMessage()), - Http::STATUS_CONFLICT); + + return new JSONResponse( + array('message' => $ex->getMessage()), + Http::STATUS_CONFLICT + ); + } catch(BusinessLayerException $ex) { - return new JSONResponse(array('message' => $ex->getMessage()), - Http::STATUS_NOT_FOUND); + + return new JSONResponse( + array('message' => $ex->getMessage()), + Http::STATUS_NOT_FOUND + ); + } } @@ -119,17 +132,18 @@ class FeedApiController extends Controller { /** * @NoAdminRequired * @NoCSRFRequired - * @API + * @CORS + * + * @param int $feedId */ - public function delete() { - $feedId = (int) $this->params('feedId'); - + public function delete($feedId) { try { $this->feedBusinessLayer->delete($feedId, $this->userId); - return new JSONResponse(); } catch(BusinessLayerException $ex) { - return new JSONResponse(array('message' => $ex->getMessage()), - Http::STATUS_NOT_FOUND); + return new JSONResponse( + array('message' => $ex->getMessage()), + Http::STATUS_NOT_FOUND + ); } } @@ -137,21 +151,20 @@ class FeedApiController extends Controller { /** * @NoAdminRequired * @NoCSRFRequired - * @API + * @CORS */ public function read() { $feedId = (int) $this->params('feedId'); $newestItemId = (int) $this->params('newestItemId'); $this->itemBusinessLayer->readFeed($feedId, $newestItemId, $this->userId); - return new JSONResponse(); } /** * @NoAdminRequired * @NoCSRFRequired - * @API + * @CORS */ public function move() { $feedId = (int) $this->params('feedId'); @@ -159,7 +172,6 @@ class FeedApiController extends Controller { try { $this->feedBusinessLayer->move($feedId, $folderId, $this->userId); - return new JSONResponse(); } catch(BusinessLayerException $ex) { return new JSONResponse(array('message' => $ex->getMessage()), Http::STATUS_NOT_FOUND); @@ -170,7 +182,7 @@ class FeedApiController extends Controller { /** * @NoAdminRequired * @NoCSRFRequired - * @API + * @CORS */ public function rename() { $feedId = (int) $this->params('feedId'); @@ -178,7 +190,6 @@ class FeedApiController extends Controller { try { $this->feedBusinessLayer->rename($feedId, $feedTitle, $this->userId); - return new JSONResponse(); } catch(BusinessLayerException $ex) { return new JSONResponse(array('message' => $ex->getMessage()), Http::STATUS_NOT_FOUND); @@ -188,7 +199,7 @@ class FeedApiController extends Controller { /** * @NoCSRFRequired - * @API + * @CORS */ public function fromAllUsers() { $feeds = $this->feedBusinessLayer->findAllFromAllUsers(); @@ -216,11 +227,9 @@ class FeedApiController extends Controller { $this->feedBusinessLayer->update($feedId, $userId); // ignore update failure (feed could not be reachable etc, we dont care) } catch(\Exception $ex) { - $this->logger->log('Could not update feed ' . $ex->getMessage(), - 'debug'); + $this->logger->debug('Could not update feed ' . $ex->getMessage(), + $this->loggerParams); } - return new JSONResponse(); - } |