Переглянути джерело

Use native JsonResponse object

Thomas Rabaix 12 роки тому
батько
коміт
5316b95ec8

+ 8 - 21
Controller/HelperController.php

@@ -14,6 +14,7 @@ namespace Sonata\AdminBundle\Controller;
 use Symfony\Bundle\FrameworkBundle\Controller\Controller;
 use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
 use Symfony\Component\HttpFoundation\Response;
+use Symfony\Component\HttpFoundation\JsonResponse;
 use Symfony\Component\Form\Util\PropertyPath;
 use Symfony\Component\HttpFoundation\Request;
 use Sonata\AdminBundle\Admin\Pool;
@@ -212,44 +213,32 @@ class HelperController
 
         // alter should be done by using a post method
         if ($request->getMethod() != 'POST') {
-            return new Response(json_encode(array('status' => 'KO', 'message' => 'Expected a POST Request')), 200, array(
-                'Content-Type' => 'application/json'
-            ));
+            return new JsonResponse(array('status' => 'KO', 'message' => 'Expected a POST Request'));
         }
 
         $object = $admin->getObject($objectId);
 
         if (!$object) {
-            return new Response(json_encode(array('status' => 'KO', 'message' => 'Object does not exist')), 200, array(
-                'Content-Type' => 'application/json'
-            ));
+            return new JsonResponse(array('status' => 'KO', 'message' => 'Object does not exist'));
         }
 
         // check user permission
         if (false === $admin->isGranted('EDIT', $object)) {
-            return new Response(json_encode(array('status' => 'KO', 'message' => 'Invalid permissions')), 200, array(
-                'Content-Type' => 'application/json'
-            ));
+            return new JsonResponse(array('status' => 'KO', 'message' => 'Invalid permissions'));
         }
 
         if ($context == 'list') {
             $fieldDescription = $admin->getListFieldDescription($field);
         } else {
-            return new Response(json_encode(array('status' => 'KO', 'message' => 'Invalid context')), 200, array(
-                'Content-Type' => 'application/json'
-            ));
+            return new JsonResponse(array('status' => 'KO', 'message' => 'Invalid context'));
         }
 
         if (!$fieldDescription) {
-            return new Response(json_encode(array('status' => 'KO', 'message' => 'The field does not exist')), 200, array(
-                'Content-Type' => 'application/json'
-            ));
+            return new JsonResponse(array('status' => 'KO', 'message' => 'The field does not exist'));
         }
 
         if (!$fieldDescription->getOption('editable')) {
-            return new Response(json_encode(array('status' => 'KO', 'message' => 'The field cannot be edit, editable option must be set to true')), 200, array(
-                'Content-Type' => 'application/json'
-            ));
+            return new JsonResponse(array('status' => 'KO', 'message' => 'The field cannot be edit, editable option must be set to true'));
         }
 
         // TODO : call the validator component ...
@@ -265,8 +254,6 @@ class HelperController
 
         $content = $extension->renderListElement($object, $fieldDescription);
 
-        return new Response(json_encode(array('status' => 'OK', 'content' => $content)), 200, array(
-            'Content-Type' => 'application/json'
-        ));
+        return new JsonResponse(array('status' => 'OK', 'content' => $content));
     }
 }

+ 1 - 1
Tests/Controller/HelperControllerTest.php

@@ -177,7 +177,7 @@ class HelperControllerTest extends \PHPUnit_Framework_TestCase
 
         $response = $controller->setObjectFieldValueAction($request);
 
-        $this->assertEquals('{"status":"OK","content":"<foo \/>"}', $response->getContent() );
+        $this->assertEquals('{"status":"OK","content":"\u003Cfoo \/\u003E"}', $response->getContent() );
     }
 
     public function testappendFormFieldElementAction()