]> git.immae.eu Git - github/wallabag/wallabag.git/blobdiff - src/Wallabag/ApiBundle/Controller/WallabagRestController.php
Merge pull request #3959 from wallabag/mig-tag-collation
[github/wallabag/wallabag.git] / src / Wallabag / ApiBundle / Controller / WallabagRestController.php
index 3c7ad0cfeb177a512906df28c971df82911ba710..44fd968354120ced54c33ae4dd2e4a5d470df35f 100644 (file)
@@ -2,12 +2,13 @@
 
 namespace Wallabag\ApiBundle\Controller;
 
-use FOS\RestBundle\Controller\FOSRestController;
+use FOS\RestBundle\Controller\AbstractFOSRestController;
+use JMS\Serializer\SerializationContext;
 use Nelmio\ApiDocBundle\Annotation\ApiDoc;
 use Symfony\Component\HttpFoundation\JsonResponse;
 use Symfony\Component\Security\Core\Exception\AccessDeniedException;
 
-class WallabagRestController extends FOSRestController
+class WallabagRestController extends AbstractFOSRestController
 {
     /**
      * Retrieve version number.
@@ -64,4 +65,22 @@ class WallabagRestController extends FOSRestController
             throw $this->createAccessDeniedException('Access forbidden. Entry user id: ' . $requestUserId . ', logged user id: ' . $user->getId());
         }
     }
+
+    /**
+     * Shortcut to send data serialized in json.
+     *
+     * @param mixed $data
+     *
+     * @return JsonResponse
+     */
+    protected function sendResponse($data)
+    {
+        // https://github.com/schmittjoh/JMSSerializerBundle/issues/293
+        $context = new SerializationContext();
+        $context->setSerializeNull(true);
+
+        $json = $this->get('jms_serializer')->serialize($data, 'json', $context);
+
+        return (new JsonResponse())->setJson($json);
+    }
 }