summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBernhard Posselt <Raydiation@users.noreply.github.com>2014-03-13 00:34:40 +0100
committerBernhard Posselt <Raydiation@users.noreply.github.com>2014-03-13 00:34:40 +0100
commit7d37d7e2385f5008060c8f3f988eb92da65b323a (patch)
tree9b02fea869e9328b3c5a48ea38de262c67143943
parent37181c603b2aaa4dbd0d17ecf4927f28523c2ad8 (diff)
parentd67b77ac255974d2298bd858b636767e490a4e41 (diff)
Merge pull request #492 from sub/issue455
Add feed renaming to the API
-rw-r--r--api/feedapi.php22
-rw-r--r--appinfo/routes.php6
-rw-r--r--tests/unit/api/FeedAPITest.php37
3 files changed, 65 insertions, 0 deletions
diff --git a/api/feedapi.php b/api/feedapi.php
index 4ad9b3307..0880434d8 100644
--- a/api/feedapi.php
+++ b/api/feedapi.php
@@ -183,6 +183,28 @@ class FeedAPI extends Controller {
/**
+ * @IsAdminExemption
+ * @IsSubAdminExemption
+ * @CSRFExemption
+ * @Ajax
+ * @API
+ */
+ public function rename() {
+ $userId = $this->api->getUserId();
+ $feedId = (int) $this->params('feedId');
+ $feedTitle = $this->params('feedTitle');
+
+ try {
+ $this->feedBusinessLayer->rename($feedId, $feedTitle, $userId);
+ return new JSONResponse();
+ } catch(BusinessLayerException $ex) {
+ return new JSONResponse(array('message' => $ex->getMessage()),
+ Http::STATUS_NOT_FOUND);
+ }
+ }
+
+
+ /**
* @CSRFExemption
* @Ajax
* @API
diff --git a/appinfo/routes.php b/appinfo/routes.php
index cc697d0a9..fc60a717c 100644
--- a/appinfo/routes.php
+++ b/appinfo/routes.php
@@ -354,6 +354,12 @@ $this->create('news_api_feeds_move', '/api/v1-2/feeds/{feedId}/move')->put()->ac
}
);
+$this->create('news_api_feeds_rename', '/api/v1-2/feeds/{feedId}/rename')->put()->action(
+ function($params) {
+ return App::main('FeedAPI', 'rename', $params, new DIContainer());
+ }
+);
+
$this->create('news_api_feeds_read', '/api/v1-2/feeds/{feedId}/read')->put()->action(
function($params) {
return App::main('FeedAPI', 'read', $params, new DIContainer());
diff --git a/tests/unit/api/FeedAPITest.php b/tests/unit/api/FeedAPITest.php
index e3b5b5587..6b2187657 100644
--- a/tests/unit/api/FeedAPITest.php
+++ b/tests/unit/api/FeedAPITest.php
@@ -437,6 +437,43 @@ class FeedAPITest extends ControllerTestUtility {
}
+ public function testRename() {
+ $feedId = 3;
+ $feedTitle = 'test';
+
+ $request = new Request(array(
+ 'urlParams' => array(
+ 'feedId' => $feedId
+ ),
+ 'params' => array(
+ 'feedTitle' => $feedTitle
+ )
+ ));
+ $this->feedAPI = new FeedAPI(
+ $this->api,
+ $request,
+ $this->folderBusinessLayer,
+ $this->feedBusinessLayer,
+ $this->itemBusinessLayer
+ );
+
+ $this->api->expects($this->once())
+ ->method('getUserId')
+ ->will($this->returnValue($this->user));
+ $this->feedBusinessLayer->expects($this->once())
+ ->method('rename')
+ ->with(
+ $this->equalTo($feedId),
+ $this->equalTo($feedTitle),
+ $this->equalTo($this->user));
+
+ $response = $this->feedAPI->rename();
+
+ $this->assertEmpty($response->getData());
+ $this->assertEquals(Http::STATUS_OK, $response->getStatus());
+ }
+
+
public function testMoveDoesNotExist() {
$this->api->expects($this->once())
->method('getUserId')