]> git.immae.eu Git - github/wallabag/wallabag.git/commitdiff
PATCH method, boolean for some parameters and change entity methods name
authorNicolas Lœuillet <nicolas@loeuillet.org>
Thu, 5 Feb 2015 17:21:31 +0000 (18:21 +0100)
committerNicolas Lœuillet <nicolas@loeuillet.org>
Thu, 5 Feb 2015 17:21:31 +0000 (18:21 +0100)
src/Wallabag/CoreBundle/Controller/WallabagRestController.php
src/Wallabag/CoreBundle/Entity/Entries.php

index 55906ce06c924cddf36796170ba91ea34eafa972..711e7bb291d239344c2f3fc6479d410bbf2fbdcf 100644 (file)
@@ -17,9 +17,9 @@ class WallabagRestController extends Controller
      *
      * @ApiDoc(
      *       parameters={
-     *          {"name"="archive", "dataType"="integer", "required"=false, "format"="'0' or '1', all entries by default", "description"="filter by archived status."},
-     *          {"name"="star", "dataType"="integer", "required"=false, "format"="'0' or '1', all entries by default", "description"="filter by starred status."},
-     *          {"name"="delete", "dataType"="integer", "required"=false, "format"="'0' or '1', default '0'", "description"="filter by deleted status."},
+     *          {"name"="archive", "dataType"="boolean", "required"=false, "format"="true or false, all entries by default", "description"="filter by archived status."},
+     *          {"name"="star", "dataType"="boolean", "required"=false, "format"="true or false, all entries by default", "description"="filter by starred status."},
+     *          {"name"="delete", "dataType"="boolean", "required"=false, "format"="true or false, default '0'", "description"="filter by deleted status."},
      *          {"name"="sort", "dataType"="string", "required"=false, "format"="'created' or 'updated', default 'created'", "description"="sort entries by date."},
      *          {"name"="order", "dataType"="string", "required"=false, "format"="'asc' or 'desc', default 'desc'", "description"="order of sort."},
      *          {"name"="page", "dataType"="integer", "required"=false, "format"="default '1'", "description"="what page you want."},
@@ -109,14 +109,41 @@ class WallabagRestController extends Controller
      *      parameters={
      *          {"name"="title", "dataType"="string", "required"=false},
      *          {"name"="tags", "dataType"="string", "required"=false, "format"="tag1,tag2,tag3", "description"="a comma-separated list of tags."},
-     *          {"name"="archive", "dataType"="integer", "required"=false, "format"="'0' or '1', default '0'", "description"="archived the entry."},
-     *          {"name"="star", "dataType"="integer", "required"=false, "format"="'0' or '1', default '0'", "description"="starred the entry."},
-     *          {"name"="delete", "dataType"="integer", "required"=false, "format"="'0' or '1', default '0'", "description"="flag as deleted. Default false. In case that you don't want to *really* remove it.."},
+     *          {"name"="archive", "dataType"="boolean", "required"=false, "format"="true or false", "description"="archived the entry."},
+     *          {"name"="star", "dataType"="boolean", "required"=false, "format"="true or false", "description"="starred the entry."},
+     *          {"name"="delete", "dataType"="boolean", "required"=false, "format"="true or false", "description"="flag as deleted. Default false. In case that you don't want to *really* remove it.."},
      *       }
      * )
      */
-    public function patchEntriesAction(Entries $entry)
+    public function patchEntriesAction(Entries $entry, Request $request)
     {
+        $title      = $request->request->get("title");
+        $tags       = $request->request->get("tags", array());
+        $isArchived = $request->request->get("archive");
+        $isDeleted  = $request->request->get("delete");
+        $isStarred  = $request->request->get("star");
+
+        if (!is_null($title)) {
+            $entry->setTitle($title);
+        }
+
+        if (!is_null($isArchived)) {
+            $entry->setRead($isArchived);
+        }
+
+        if (!is_null($isDeleted)) {
+            $entry->setDeleted($isDeleted);
+        }
+
+        if (!is_null($isStarred)) {
+            $entry->setFav($isStarred);
+        }
+
+        $em = $this->getDoctrine()->getManager();
+        $em->persist($entry);
+        $em->flush();
+
+        return $entry;
     }
 
     /**
index 6eb1efc06936ae61488e1dc3f26d85cb72a8ef18..ab5b859b87ac8c405e79c90c0429d13d5fed58f4 100644 (file)
@@ -185,7 +185,7 @@ class Entries
      * @param  string  $isRead
      * @return Entries
      */
-    public function setIsRead($isRead)
+    public function setRead($isRead)
     {
         $this->isRead = $isRead;
 
@@ -197,7 +197,7 @@ class Entries
      *
      * @return string
      */
-    public function getIsRead()
+    public function isRead()
     {
         return $this->isRead;
     }
@@ -215,7 +215,7 @@ class Entries
      * @param  string  $isFav
      * @return Entries
      */
-    public function setIsFav($isFav)
+    public function setFav($isFav)
     {
         $this->isFav = $isFav;
 
@@ -227,7 +227,7 @@ class Entries
      *
      * @return string
      */
-    public function getIsFav()
+    public function isFav()
     {
         return $this->isFav;
     }
@@ -402,7 +402,7 @@ class Entries
     /**
      * @return boolean
      */
-    public function isIsPublic()
+    public function isPublic()
     {
         return $this->isPublic;
     }
@@ -410,7 +410,7 @@ class Entries
     /**
      * @param boolean $isPublic
      */
-    public function setIsPublic($isPublic)
+    public function setPublic($isPublic)
     {
         $this->isPublic = $isPublic;
     }