From 873e3806585078222b31e0d24d0c6159c493727f Mon Sep 17 00:00:00 2001 From: Yuriy Evdokimov Date: Wed, 18 May 2016 10:30:33 +0500 Subject: Starred and Archived clears if article is already exists --- src/Wallabag/ApiBundle/Controller/WallabagRestController.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'src/Wallabag/ApiBundle') diff --git a/src/Wallabag/ApiBundle/Controller/WallabagRestController.php b/src/Wallabag/ApiBundle/Controller/WallabagRestController.php index 5202c524..b786d4ca 100644 --- a/src/Wallabag/ApiBundle/Controller/WallabagRestController.php +++ b/src/Wallabag/ApiBundle/Controller/WallabagRestController.php @@ -110,8 +110,8 @@ class WallabagRestController extends FOSRestController $url = $request->request->get('url'); $title = $request->request->get('title'); - $isArchived = (int) $request->request->get('archive'); - $isStarred = (int) $request->request->get('starred'); + $isArchived = $request->request->get('archive'); + $isStarred = $request->request->get('starred'); $entry = $this->get('wallabag_core.entry_repository')->findByUrlAndUserId($url, $this->getUser()->getId()); -- cgit v1.2.3 From 614a0bfd86fe392bd11f5866a9ff7a966e10198a Mon Sep 17 00:00:00 2001 From: Yuriy Evdokimov Date: Wed, 18 May 2016 10:55:37 +0500 Subject: PATCH also clears starred and archived signs --- src/Wallabag/ApiBundle/Controller/WallabagRestController.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'src/Wallabag/ApiBundle') diff --git a/src/Wallabag/ApiBundle/Controller/WallabagRestController.php b/src/Wallabag/ApiBundle/Controller/WallabagRestController.php index b786d4ca..af24e498 100644 --- a/src/Wallabag/ApiBundle/Controller/WallabagRestController.php +++ b/src/Wallabag/ApiBundle/Controller/WallabagRestController.php @@ -172,8 +172,8 @@ class WallabagRestController extends FOSRestController $this->validateUserAccess($entry->getUser()->getId()); $title = $request->request->get('title'); - $isArchived = (int) $request->request->get('archive'); - $isStarred = (int) $request->request->get('starred'); + $isArchived = $request->request->get('archive'); + $isStarred = $request->request->get('starred'); if (!is_null($title)) { $entry->setTitle($title); -- cgit v1.2.3 From bba271e619eabbd525d38d125e4b77f838cadba5 Mon Sep 17 00:00:00 2001 From: Yuriy Evdokimov Date: Wed, 18 May 2016 15:37:07 +0500 Subject: Tests for issue #2089 --- .../Controller/WallabagRestControllerTest.php | 88 ++++++++++++++++++++++ 1 file changed, 88 insertions(+) (limited to 'src/Wallabag/ApiBundle') diff --git a/src/Wallabag/ApiBundle/Tests/Controller/WallabagRestControllerTest.php b/src/Wallabag/ApiBundle/Tests/Controller/WallabagRestControllerTest.php index 2f2d92ee..4c787277 100644 --- a/src/Wallabag/ApiBundle/Tests/Controller/WallabagRestControllerTest.php +++ b/src/Wallabag/ApiBundle/Tests/Controller/WallabagRestControllerTest.php @@ -423,4 +423,92 @@ class WallabagRestControllerTest extends WallabagApiTestCase $this->assertEquals($this->client->getContainer()->getParameter('wallabag_core.version'), $content); } + + public function testSaveIsArchivedAfterPost() + { + $entry = $this->client->getContainer() + ->get('doctrine.orm.entity_manager') + ->getRepository('WallabagCoreBundle:Entry') + ->findOneBy(['user' => 1, 'isArchived' => true]); + + if (!$entry) { + $this->markTestSkipped('No content found in db.'); + } + + $this->client->request('POST', '/api/entries.json', [ + 'url' => $entry->getUrl(), + ]); + + $this->assertEquals(200, $this->client->getResponse()->getStatusCode()); + + $content = json_decode($this->client->getResponse()->getContent(), true); + + $this->assertEquals(true, $content['is_archived']); + } + + public function testSaveIsStarredAfterPost() + { + $entry = $this->client->getContainer() + ->get('doctrine.orm.entity_manager') + ->getRepository('WallabagCoreBundle:Entry') + ->findOneBy(['user' => 1, 'isStarred' => true]); + + if (!$entry) { + $this->markTestSkipped('No content found in db.'); + } + + $this->client->request('POST', '/api/entries.json', [ + 'url' => $entry->getUrl(), + ]); + + $this->assertEquals(200, $this->client->getResponse()->getStatusCode()); + + $content = json_decode($this->client->getResponse()->getContent(), true); + + $this->assertEquals(true, $content['is_starred']); + } + + public function testSaveIsArchivedAfterPatch() + { + $entry = $this->client->getContainer() + ->get('doctrine.orm.entity_manager') + ->getRepository('WallabagCoreBundle:Entry') + ->findOneBy(['user' => 1, 'isArchived' => true]); + + if (!$entry) { + $this->markTestSkipped('No content found in db.'); + } + + $this->client->request('PATCH', '/api/entries/'.$entry->getId().'.json', [ + 'title' => $entry->getTitle().'++', + ]); + + $this->assertEquals(200, $this->client->getResponse()->getStatusCode()); + + $content = json_decode($this->client->getResponse()->getContent(), true); + + $this->assertEquals(true, $content['is_archived']); + } + + public function testSaveIsStarredAfterPatch() + { + $entry = $this->client->getContainer() + ->get('doctrine.orm.entity_manager') + ->getRepository('WallabagCoreBundle:Entry') + ->findOneBy(['user' => 1, 'isStarred' => true]); + + if (!$entry) { + $this->markTestSkipped('No content found in db.'); + } + $this->client->request('PATCH', '/api/entries/'.$entry->getId().'.json', [ + 'title' => $entry->getTitle().'++', + ]); + + $this->assertEquals(200, $this->client->getResponse()->getStatusCode()); + + $content = json_decode($this->client->getResponse()->getContent(), true); + + $this->assertEquals(true, $content['is_starred']); + } + } -- cgit v1.2.3