summaryrefslogtreecommitdiffstats
path: root/external
diff options
context:
space:
mode:
authorBernhard Posselt <nukeawhale@gmail.com>2013-05-02 22:46:54 +0200
committerBernhard Posselt <nukeawhale@gmail.com>2013-05-02 22:46:54 +0200
commitb8a2a027440b753354e4715d26cfcc87fa5c8f4e (patch)
tree2fce939e89585f3758868adead7daa6d8adfd336 /external
parenta8a1a4addb0b5977acfe4a31e6c6b8af679728e2 (diff)
implemented last api method, fix #105
Diffstat (limited to 'external')
-rw-r--r--external/feedapi.php41
-rw-r--r--external/folderapi.php4
-rw-r--r--external/itemapi.php4
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);