]> git.immae.eu Git - github/wallabag/wallabag.git/blobdiff - src/Wallabag/CoreBundle/Controller/WallabagRestController.php
for GET /api/entries, star, delete and archive status are no more necessary
[github/wallabag/wallabag.git] / src / Wallabag / CoreBundle / Controller / WallabagRestController.php
index 5668d9348627e97fc9c66e6eb4af0a1fbf0fc5f8..5f56e0fc9806689b83410dfaa53d8056edb103c8 100644 (file)
@@ -5,6 +5,7 @@ namespace Wallabag\CoreBundle\Controller;
 use Nelmio\ApiDocBundle\Annotation\ApiDoc;
 use Symfony\Bundle\FrameworkBundle\Controller\Controller;
 use Symfony\Component\HttpFoundation\Request;
+use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
 use Wallabag\CoreBundle\Entity\Entries;
 use Wallabag\CoreBundle\Entity\Tags;
 use Wallabag\CoreBundle\Service\Extractor;
@@ -30,9 +31,11 @@ class WallabagRestController extends Controller
      */
     public function getEntriesAction(Request $request)
     {
-        $isArchived = $request->query->get('archive', 0);
-        $isStarred  = $request->query->get('star', 0);
-        $isDeleted  = $request->query->get('delete', 0);
+        // TODO isArchived, isStarred et isDeleted ne doivent pas avoir de valeur par défaut
+        // TODO Si on ne passe rien, on ne filtre pas sur le statut.
+        $isArchived = $request->query->get('archive');
+        $isStarred  = $request->query->get('star');
+        $isDeleted  = $request->query->get('delete');
         $sort       = $request->query->get('sort', 'created');
         $order      = $request->query->get('order', 'desc');
         $page       = $request->query->get('page', 1);
@@ -42,7 +45,7 @@ class WallabagRestController extends Controller
         $entries = $this
             ->getDoctrine()
             ->getRepository('WallabagCoreBundle:Entries')
-            ->findEntries(1, (int) $isArchived, (int) $isStarred, (int) $isDeleted, $sort, $order);
+            ->findEntries(1, $isArchived, $isStarred, $isDeleted, $sort, $order);
 
         if (!is_array($entries)) {
             throw $this->createNotFoundException();
@@ -129,6 +132,16 @@ class WallabagRestController extends Controller
      */
     public function deleteEntriesAction(Entries $entry)
     {
+        if ($entry->isDeleted()) {
+            throw new NotFoundHttpException('This entry is already deleted');
+        }
+
+        $em = $this->getDoctrine()->getManager();
+        $entry->setDeleted(1);
+        $em->persist($entry);
+        $em->flush();
+
+        return $entry;
     }
 
     /**