aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/Wallabag/ApiBundle
diff options
context:
space:
mode:
Diffstat (limited to 'src/Wallabag/ApiBundle')
-rw-r--r--src/Wallabag/ApiBundle/Controller/WallabagRestController.php23
-rw-r--r--src/Wallabag/ApiBundle/Tests/Controller/WallabagRestControllerTest.php10
-rw-r--r--src/Wallabag/ApiBundle/Tests/WallabagApiTestCase.php9
3 files changed, 29 insertions, 13 deletions
diff --git a/src/Wallabag/ApiBundle/Controller/WallabagRestController.php b/src/Wallabag/ApiBundle/Controller/WallabagRestController.php
index 74bfe4dc..459c4172 100644
--- a/src/Wallabag/ApiBundle/Controller/WallabagRestController.php
+++ b/src/Wallabag/ApiBundle/Controller/WallabagRestController.php
@@ -27,7 +27,7 @@ class WallabagRestController extends FOSRestController
27 ->findOneByLabel($label); 27 ->findOneByLabel($label);
28 28
29 if (is_null($tagEntity)) { 29 if (is_null($tagEntity)) {
30 $tagEntity = new Tag($this->getUser()); 30 $tagEntity = new Tag();
31 $tagEntity->setLabel($label); 31 $tagEntity->setLabel($label);
32 } 32 }
33 33
@@ -74,8 +74,7 @@ class WallabagRestController extends FOSRestController
74 $perPage = (int) $request->query->get('perPage', 30); 74 $perPage = (int) $request->query->get('perPage', 30);
75 $tags = $request->query->get('tags', []); 75 $tags = $request->query->get('tags', []);
76 76
77 $pager = $this 77 $pager = $this->getDoctrine()
78 ->getDoctrine()
79 ->getRepository('WallabagCoreBundle:Entry') 78 ->getRepository('WallabagCoreBundle:Entry')
80 ->findEntries($this->getUser()->getId(), $isArchived, $isStarred, $sort, $order); 79 ->findEntries($this->getUser()->getId(), $isArchived, $isStarred, $sort, $order);
81 80
@@ -175,8 +174,8 @@ class WallabagRestController extends FOSRestController
175 $this->validateUserAccess($entry->getUser()->getId()); 174 $this->validateUserAccess($entry->getUser()->getId());
176 175
177 $title = $request->request->get('title'); 176 $title = $request->request->get('title');
178 $isArchived = $request->request->get('is_archived'); 177 $isArchived = $request->request->get('archive');
179 $isStarred = $request->request->get('is_starred'); 178 $isStarred = $request->request->get('star');
180 179
181 if (!is_null($title)) { 180 if (!is_null($title)) {
182 $entry->setTitle($title); 181 $entry->setTitle($title);
@@ -311,7 +310,12 @@ class WallabagRestController extends FOSRestController
311 public function getTagsAction() 310 public function getTagsAction()
312 { 311 {
313 $this->validateAuthentication(); 312 $this->validateAuthentication();
314 $json = $this->get('serializer')->serialize($this->getUser()->getTags(), 'json'); 313
314 $tags = $this->getDoctrine()
315 ->getRepository('WallabagCoreBundle:Tag')
316 ->findAllTags($this->getUser()->getId());
317
318 $json = $this->get('serializer')->serialize($tags, 'json');
315 319
316 return $this->renderJsonResponse($json); 320 return $this->renderJsonResponse($json);
317 } 321 }
@@ -328,11 +332,10 @@ class WallabagRestController extends FOSRestController
328 public function deleteTagAction(Tag $tag) 332 public function deleteTagAction(Tag $tag)
329 { 333 {
330 $this->validateAuthentication(); 334 $this->validateAuthentication();
331 $this->validateUserAccess($tag->getUser()->getId());
332 335
333 $em = $this->getDoctrine()->getManager(); 336 $this->getDoctrine()
334 $em->remove($tag); 337 ->getRepository('WallabagCoreBundle:Entry')
335 $em->flush(); 338 ->removeTag($this->getUser()->getId(), $tag);
336 339
337 $json = $this->get('serializer')->serialize($tag, 'json'); 340 $json = $this->get('serializer')->serialize($tag, 'json');
338 341
diff --git a/src/Wallabag/ApiBundle/Tests/Controller/WallabagRestControllerTest.php b/src/Wallabag/ApiBundle/Tests/Controller/WallabagRestControllerTest.php
index bdd36e0c..22894a77 100644
--- a/src/Wallabag/ApiBundle/Tests/Controller/WallabagRestControllerTest.php
+++ b/src/Wallabag/ApiBundle/Tests/Controller/WallabagRestControllerTest.php
@@ -208,7 +208,7 @@ class WallabagRestControllerTest extends WallabagApiTestCase
208 208
209 $tags = array(); 209 $tags = array();
210 foreach ($entry->getTags() as $tag) { 210 foreach ($entry->getTags() as $tag) {
211 $tags[] = array('id' => $tag->getId(), 'label' => $tag->getLabel()); 211 $tags[] = array('id' => $tag->getId(), 'label' => $tag->getLabel(), 'slug' => $tag->getSlug());
212 } 212 }
213 213
214 $this->client->request('GET', '/api/entries/'.$entry->getId().'/tags'); 214 $this->client->request('GET', '/api/entries/'.$entry->getId().'/tags');
@@ -309,5 +309,13 @@ class WallabagRestControllerTest extends WallabagApiTestCase
309 309
310 $this->assertArrayHasKey('label', $content); 310 $this->assertArrayHasKey('label', $content);
311 $this->assertEquals($tag['label'], $content['label']); 311 $this->assertEquals($tag['label'], $content['label']);
312 $this->assertEquals($tag['slug'], $content['slug']);
313
314 $entries = $entry = $this->client->getContainer()
315 ->get('doctrine.orm.entity_manager')
316 ->getRepository('WallabagCoreBundle:Entry')
317 ->findAllByTagId($this->user->getId(), $tag['id']);
318
319 $this->assertCount(0, $entries);
312 } 320 }
313} 321}
diff --git a/src/Wallabag/ApiBundle/Tests/WallabagApiTestCase.php b/src/Wallabag/ApiBundle/Tests/WallabagApiTestCase.php
index 8a57fea2..a415c749 100644
--- a/src/Wallabag/ApiBundle/Tests/WallabagApiTestCase.php
+++ b/src/Wallabag/ApiBundle/Tests/WallabagApiTestCase.php
@@ -12,6 +12,11 @@ abstract class WallabagApiTestCase extends WebTestCase
12 */ 12 */
13 protected $client = null; 13 protected $client = null;
14 14
15 /**
16 * @var \FOS\UserBundle\Model\UserInterface
17 */
18 protected $user;
19
15 public function setUp() 20 public function setUp()
16 { 21 {
17 $this->client = $this->createAuthorizedClient(); 22 $this->client = $this->createAuthorizedClient();
@@ -31,8 +36,8 @@ abstract class WallabagApiTestCase extends WebTestCase
31 $loginManager = $container->get('fos_user.security.login_manager'); 36 $loginManager = $container->get('fos_user.security.login_manager');
32 $firewallName = $container->getParameter('fos_user.firewall_name'); 37 $firewallName = $container->getParameter('fos_user.firewall_name');
33 38
34 $user = $userManager->findUserBy(array('username' => 'admin')); 39 $this->user = $userManager->findUserBy(array('username' => 'admin'));
35 $loginManager->loginUser($firewallName, $user); 40 $loginManager->loginUser($firewallName, $this->user);
36 41
37 // save the login token into the session and put it in a cookie 42 // save the login token into the session and put it in a cookie
38 $container->get('session')->set('_security_'.$firewallName, serialize($container->get('security.token_storage')->getToken())); 43 $container->get('session')->set('_security_'.$firewallName, serialize($container->get('security.token_storage')->getToken()));