diff options
author | Bernhard Posselt <nukeawhale@gmail.com> | 2013-05-02 22:46:54 +0200 |
---|---|---|
committer | Bernhard Posselt <nukeawhale@gmail.com> | 2013-05-02 22:46:54 +0200 |
commit | b8a2a027440b753354e4715d26cfcc87fa5c8f4e (patch) | |
tree | 2fce939e89585f3758868adead7daa6d8adfd336 /external | |
parent | a8a1a4addb0b5977acfe4a31e6c6b8af679728e2 (diff) |
implemented last api method, fix #105
Diffstat (limited to 'external')
-rw-r--r-- | external/feedapi.php | 41 | ||||
-rw-r--r-- | external/folderapi.php | 4 | ||||
-rw-r--r-- | external/itemapi.php | 4 |
3 files changed, 44 insertions, 5 deletions
diff --git a/external/feedapi.php b/external/feedapi.php index d88eda35f..b6ec82d0e 100644 --- a/external/feedapi.php +++ b/external/feedapi.php @@ -33,6 +33,7 @@ use \OCA\News\BusinessLayer\FeedBusinessLayer; use \OCA\News\BusinessLayer\FolderBusinessLayer; use \OCA\News\BusinessLayer\ItemBusinessLayer; use \OCA\News\BusinessLayer\BusinessLayerException; +use \OCA\News\BusinessLayer\BusinessLayerExistsException; class FeedAPI extends Controller { @@ -54,7 +55,6 @@ class FeedAPI extends Controller { public function getAll() { - $userId = $this->api->getUserId(); $result = array( @@ -77,22 +77,61 @@ class FeedAPI extends Controller { public function create() { + $userId = $this->api->getUserId(); + $feedUrl = $this->params('url'); + $folderId = (int) $this->params('folderId', 0); + try { + $feed = $this->feedBusinessLayer->create($feedUrl, $folderId, $userId); + return new NewsAPIResult(array( + 'feeds' => array($feed->toAPI()) + )); + } catch(BusinessLayerExistsException $ex) { + return new NewsAPIResult(null, NewsAPIResult::EXISTS_ERROR, + $ex->getMessage()); + } catch(BusinessLayerException $ex) { + return new NewsAPIResult(null, NewsAPIResult::NOT_FOUND_ERROR, + $ex->getMessage()); + } } public function delete() { + $userId = $this->api->getUserId(); + $feedId = (int) $this->params('feedId'); + try { + $this->feedBusinessLayer->delete($feedId, $userId); + return new NewsAPIResult(); + } catch(BusinessLayerException $ex) { + return new NewsAPIResult(null, NewsAPIResult::NOT_FOUND_ERROR, + $ex->getMessage()); + } } 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 NewsAPIResult(); } 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 NewsAPIResult(); + } catch(BusinessLayerException $ex) { + return new NewsAPIResult(null, NewsAPIResult::NOT_FOUND_ERROR, + $ex->getMessage()); + } } diff --git a/external/folderapi.php b/external/folderapi.php index 36ef9c35f..642ca1968 100644 --- a/external/folderapi.php +++ b/external/folderapi.php @@ -81,7 +81,7 @@ class FolderAPI extends Controller { public function delete() { $userId = $this->api->getUserId(); - $folderId = $this->params('folderId'); + $folderId = (int) $this->params('folderId'); try { $this->folderBusinessLayer->delete($folderId, $userId); @@ -95,7 +95,7 @@ class FolderAPI extends Controller { public function update() { $userId = $this->api->getUserId(); - $folderId = $this->params('folderId'); + $folderId = (int) $this->params('folderId'); $folderName = $this->params('name'); try { diff --git a/external/itemapi.php b/external/itemapi.php index 99dc8ddef..9699b4371 100644 --- a/external/itemapi.php +++ b/external/itemapi.php @@ -102,7 +102,7 @@ class ItemAPI extends Controller { private function setRead($isRead) { $userId = $this->api->getUserId(); - $itemId = $this->params('itemId'); + $itemId = (int) $this->params('itemId'); try { $this->itemBusinessLayer->read($itemId, $isRead, $userId); return new NewsAPIResult(); @@ -115,7 +115,7 @@ class ItemAPI extends Controller { private function setStarred($isStarred) { $userId = $this->api->getUserId(); - $feedId = $this->params('feedId'); + $feedId = (int) $this->params('feedId'); $guidHash = $this->params('guidHash'); try { $this->itemBusinessLayer->star($feedId, $guidHash, $isStarred, $userId); |