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/feedapi.php | |
parent | a8a1a4addb0b5977acfe4a31e6c6b8af679728e2 (diff) |
implemented last api method, fix #105
Diffstat (limited to 'external/feedapi.php')
-rw-r--r-- | external/feedapi.php | 41 |
1 files changed, 40 insertions, 1 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()); + } } |