summaryrefslogtreecommitdiffstats
path: root/controller/feedapicontroller.php
diff options
context:
space:
mode:
Diffstat (limited to 'controller/feedapicontroller.php')
-rw-r--r--controller/feedapicontroller.php91
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();
-
}