/**
  * @param Serializer $serializer
  * @param SqsClient  $sqsClient
  */
 public function __construct(Serializer $serializer, SqsClient $sqsClient)
 {
     $this->serializer = $serializer;
     $this->sqsClient = $sqsClient;
     $this->serializationContext = new SerializationContext();
     $this->serializationContext->setSerializeNull(true);
 }
Exemplo n.º 2
0
 /**
  * @param SerializerInterface $serializer
  */
 public function __construct(SerializerInterface $serializer = null)
 {
     $this->serializer = $serializer ?: SerializerBuilder::create()->build();
     $this->serializationContext = new SerializationContext();
     $this->serializationContext->setSerializeNull(true);
     $this->deserializationContext = new DeserializationContext();
     $this->deserializationContext->setSerializeNull(true);
 }
 /**
  * @param GetResponseForControllerResultEvent $event
  */
 public function serializeResponse(GetResponseForControllerResultEvent $event)
 {
     if ($this->doSerialize) {
         $data = $event->getControllerResult();
         $apiResponse = new ApiResponse(200, $data);
         $data = array_merge($apiResponse->toArray(), $this->data->all());
         $data = array_filter($data);
         if (!isset($data['data'])) {
             $data['data'] = [];
         }
         $context = new SerializationContext();
         $context->setSerializeNull(true);
         if (method_exists($context, 'enableMaxDepthChecks')) {
             $context->enableMaxDepthChecks();
         }
         if ($action = $this->getAction($event)) {
             $context->setGroups($action->getSerializationGroups());
         }
         if ($fields = $event->getRequest()->query->get('fields')) {
             $context->addExclusionStrategy(new FieldsListExclusionStrategy($fields));
         }
         $json = $this->serializer->serialize($data, 'json', $context);
         $response = new Response($json, 200, ['Content-Type' => 'application/json']);
         $event->setResponse($response);
         $event->stopPropagation();
     }
 }
 /**
  * Render the view into a string and return for output
  *
  * @param mixed $input
  * @return string
  * @throws \Exception
  */
 public function render($input = null)
 {
     $context = new SerializationContext();
     $context->setSerializeNull(true);
     $context->enableMaxDepthChecks();
     FrontController::getInstance()->getResponse()->headers->set('Content-Type', 'application/json');
     return $this->serializer->serialize($input, $this->format, $context);
 }
 protected function serializeObject($object)
 {
     $serializer = SerializerBuilder::create()->build();
     $serializationContext = new SerializationContext();
     $serializationContext->setSerializeNull(true);
     $objectJson = $serializer->serialize($object, 'json', $serializationContext);
     return json_decode($objectJson);
 }
Exemplo n.º 6
0
 protected function jsonResponse($data)
 {
     $context = new SerializationContext();
     $context->setSerializeNull(true);
     $content = $this->serializer->serialize($data, 'json', $context);
     $this->response->setContent($content);
     return $this->response;
 }
Exemplo n.º 7
0
 /**
  * {@inheritdoc}
  */
 public function setData($data = array())
 {
     $this->originalData = $data;
     $context = new SerializationContext();
     $context->setSerializeNull(true);
     $serializer = SerializerBuilder::create()->build();
     $this->data = $serializer->serialize($data, 'json', $context);
     return $this->update();
 }
Exemplo n.º 8
0
 /**
  * Create a new serialization context
  *
  * @param array $groups [optional]
  * @return SerializationContext
  */
 protected function createNewContext(array $groups = null)
 {
     $context = new SerializationContext();
     $context->setSerializeNull($this->serializeNull);
     if (null !== $groups) {
         $context->setGroups($groups);
     }
     return $context;
 }
 public function testToArrayUseProvidedSerializationContext()
 {
     $contextFactoryMock = $this->getMockForAbstractClass('JMS\\Serializer\\ContextFactory\\SerializationContextFactoryInterface');
     $context = new SerializationContext();
     $context->setSerializeNull(true);
     $contextFactoryMock->expects($this->once())->method('createSerializationContext')->will($this->returnValue($context));
     $this->serializer->setDefaultSerializationContextFactory($contextFactoryMock);
     $result = $this->serializer->toArray(array('value' => null));
     $this->assertEquals(array('value' => null), $result);
 }
Exemplo n.º 10
0
 public function getmailAction()
 {
     try {
         $jsonData = $this->getRequest()->getContent();
         $data = $this->serializer->deserialize($jsonData, "Application\\API\\Canonicals\\Dto\\ThirdPartyEmailTransport", "json");
         $emailRepo = $this->getServiceLocator()->get('EMailSvc');
         $emails = $emailRepo->fetchMail($data->mailapikey);
         $context = new SerializationContext();
         $context->setSerializeNull(true);
         $content = $this->serializer->serialize($emails, 'json', $context);
         $this->response->setContent($content);
         return $this->response;
     } catch (\Exception $ex) {
         error_log($ex->getMessage());
     }
     exit;
 }
 public function processForm(WebsiteOptions $options, array $parameters, $method = 'PUT')
 {
     $form = $this->formFactory->create(new WebsiteOptionsType(), $options, array('method' => $method));
     $form->submit($parameters, 'PATCH' !== $method);
     if ($form->isValid()) {
         $options = $form->getData();
         $this->om->persist($options);
         $this->om->flush();
         $serializationContext = new SerializationContext();
         $serializationContext->setSerializeNull(true);
         return json_decode($this->serializer->serialize($options, 'json', $serializationContext));
     }
     /*else {
           return $this->getErrorMessages($form);
       }*/
     throw new \InvalidArgumentException();
 }
Exemplo n.º 12
0
 public function testAbc()
 {
     $client = new Entity\Client();
     $location = new Entity\Location();
     $orders = new Collections\ArrayCollection();
     $orders->add(new Entity\Order('Order 001'));
     $orders->add(new Entity\Order('Order 002'));
     $orders->add(new Entity\Order('Order 003'));
     $session = new Entity\Session('981be8ae41ba4a148f20a04508ab1ab');
     $request = new Request\SaveOrder($session, $orders);
     $context = new SerializationContext();
     $context->setSerializeNull(true);
     $serializer = SerializerBuilder::create()->build();
     // serialize
     $xml = $serializer->serialize($request, 'xml', $context);
     //var_dump($xml);
     // deserialize
     $object = $serializer->deserialize($xml, Request\SaveOrder::class, 'xml');
     var_dump($object);
 }
Exemplo n.º 13
0
 public function cgetAction(Request $request)
 {
     $adminCode = $request->get('_sonata_admin');
     if (!$adminCode) {
         throw new \RuntimeException(sprintf('There is no `_sonata_admin` defined for the controller `%s` and the current route `%s`', get_class($this), $request->get('_route')));
     }
     $admin = $this->get('sonata.admin.pool')->getAdminByAdminCode($adminCode);
     if (false === $admin->isGranted('LIST')) {
         throw new AccessDeniedException();
     }
     /** @var MenuItemRepository $menuRepository */
     $menuRepository = $this->get('doctrine.orm.entity_manager')->getRepository('GravityMenuBundle:MenuItem');
     $menus = $menuRepository->findBy(['parent' => null], null, 20, 0);
     $view = new View($menus);
     $context = new SerializationContext();
     $context->setSerializeNull(true);
     $context->setGroups(['gravity_api_read']);
     $view->setSerializationContext($context);
     return $this->get('fos_rest.view_handler')->handle($view);
 }
 /**
  * @param PaginationInterface $pagination
  * @param Request             $request
  * @param Router              $router
  * @param array               $serializationGroups
  *
  * @return mixed
  */
 public function buildMultiObjectResponse(PaginationInterface $pagination, Request $request, Router $router, array $serializationGroups = array())
 {
     if (empty($pagination->getItems())) {
         return $this->handle(View::create(null, Response::HTTP_NO_CONTENT));
     }
     $paginationData = $pagination->getPaginationData();
     $link = $this->buildPaginationLink($paginationData, $request, $router);
     $headers = [];
     if (!empty($link)) {
         $headers['Link'] = $link;
     }
     if (isset($paginationData['totalCount'])) {
         $headers['X-Total-Count'] = $paginationData['totalCount'];
     }
     $view = View::create($pagination->getItems(), Response::HTTP_OK, $headers);
     $context = new SerializationContext();
     $context->setSerializeNull(true);
     if (!empty($serializationGroups)) {
         $context->setGroups($serializationGroups);
     }
     $view->setSerializationContext($context);
     return $this->handle($view);
 }
Exemplo n.º 15
0
 /**
  * Create serialization context with settings taken from the controller's annotation
  *
  * @param MappingInterface $mapping
  * @return SerializationContext
  */
 protected function createSerializationContext(MappingInterface $mapping)
 {
     $context = new SerializationContext();
     if ($mapping->getAnnotation()->getSerializerEnableMaxDepthChecks()) {
         $context->enableMaxDepthChecks();
     }
     if ($mapping->getAnnotation()->getSerializerGroups()) {
         $context->setGroups($mapping->getAnnotation()->getSerializerGroups());
     }
     if ($mapping->getAnnotation()->getSerializerSerializeNull()) {
         $context->setSerializeNull(true);
     }
     return $context;
 }
Exemplo n.º 16
0
 protected function serialize($data, $format = 'json')
 {
     $context = new SerializationContext();
     $context->setSerializeNull(true);
     return $this->container->get('jms_serializer')->serialize($data, $format, $context);
 }
 public function testSetSerializationContext()
 {
     $contextFactoryMock = $this->getMockForAbstractClass('JMS\\Serializer\\ContextFactory\\SerializationContextFactoryInterface');
     $context = new SerializationContext();
     $context->setSerializeNull(true);
     $contextFactoryMock->expects($this->once())->method('createSerializationContext')->will($this->returnValue($context));
     $this->builder->setSerializationContextFactory($contextFactoryMock);
     $serializer = $this->builder->build();
     $result = $serializer->serialize(array('value' => null), 'json');
     $this->assertEquals('{"value":null}', $result);
 }
 /**
  * Custom serializer context.
  *
  * This is required in order to set options for the serializer. We require
  * all nulls to actually be rendered instead of left off the databset.
  *
  * @return SerializationContext
  */
 private function createSerializerContext()
 {
     $context = new SerializationContext();
     $context->setSerializeNull(true);
     return $context;
 }
 /**
  * @return SerializationContext
  */
 protected function getSerializerContext()
 {
     $context = new SerializationContext();
     $context->setSerializeNull(true);
     return $context;
 }
Exemplo n.º 20
0
 /**
  * @param NQLQuery $nqlQuery
  * @param bool $skipSelection
  *
  * @return mixed|string
  * @throws \Trinity\Bundle\SearchBundle\Exception\SyntaxErrorException
  */
 public function convertToJson(NQLQuery $nqlQuery, bool $skipSelection)
 {
     $entities = $nqlQuery->getQueryBuilder($skipSelection)->getQuery()->getResult();
     if (!$skipSelection) {
         return SerializerBuilder::create()->setPropertyNamingStrategy(new SerializedNameAnnotationStrategy(new PassThroughNamingStrategy()))->build()->serialize($entities, 'json');
     }
     $result = [];
     /** @var Select $select */
     $select = $nqlQuery->getSelect();
     foreach ($entities as $entity) {
         $result[] = $this->select($select->getColumns(), $entity);
     }
     $context = new SerializationContext();
     $context->setSerializeNull(true);
     return SerializerBuilder::create()->setPropertyNamingStrategy(new SerializedNameAnnotationStrategy(new PassThroughNamingStrategy()))->build()->serialize($result, 'json', $context);
 }
Exemplo n.º 21
0
 private function getJson($data)
 {
     $context = new SerializationContext();
     $context->setSerializeNull(true);
     return $this->serializer->serialize($data, 'json', $context);
 }
 /**
  * converts content to correct output format
  *
  * @param FilterResponseEvent $event
  */
 public function onResponse(FilterResponseEvent $event)
 {
     if (!$this->isActive($event)) {
         return;
     }
     $request = $event->getRequest();
     $response = $event->getResponse();
     $content = $response->getContent();
     // convert content to content container
     if (!$content instanceof ResponseContainer) {
         $content = ResponseContainer::createAutoDetect($response);
     }
     // override http status code if needed
     $statusCode = $content->getStatusCode();
     if (!empty($statusCode)) {
         $response->setStatusCode($content->getStatusCode());
     }
     // set 204 header for empty content
     if ($content->isEmpty() && !$response->isRedirect()) {
         $response->setStatusCode(Response::HTTP_NO_CONTENT);
         $content->setStatusCode(Response::HTTP_NO_CONTENT);
     }
     // put statusCode in response and force 200 OK in header?
     if ($request->headers->has('X-Force-Status-Code-200') || $request->getRequestFormat() == self::FORMAT_JSON && $request->query->has('callback')) {
         $content->setReturnStatusCode(true);
         $response->setStatusCode(Response::HTTP_OK);
         $response->headers->set('X-Status-Code', Response::HTTP_OK);
     }
     // serialize content container
     try {
         $context = new SerializationContext();
         $context->setSerializeNull(true);
         $format = $event->getRequest()->getRequestFormat();
         $contentSerialized = $this->serializer->serialize($content->toArray(), $format, $context);
         switch ($format) {
             case self::FORMAT_XML:
                 $response->setContent($contentSerialized);
                 break;
             default:
                 $headers = $response->headers;
                 $response = new JsonResponse(null, $response->getStatusCode());
                 $response->headers = $headers;
                 $response->setContent($contentSerialized);
                 break;
         }
     } catch (\Exception $e) {
         $response = new JsonResponse(['error' => ['code' => 'error.api.middleware', 'message' => $e->getMessage()]]);
     }
     // force empty output on a no-content response
     if ($content->isEmpty() && $response->isEmpty()) {
         $response->setContent('');
     }
     $event->setResponse($response);
 }
Exemplo n.º 23
0
 public function processForm(Website $website, WebsitePage $page, array $parameters, $method = 'PUT')
 {
     $form = $this->formFactory->create(new WebsitePageType(), $page, array('method' => $method));
     $form->submit($parameters, 'PATCH' !== $method);
     if ($form->isValid()) {
         $page = $form->getData();
         /*
          * Test if section and set other values to null
          * Test if richText is set, set resourceNode and url to null
          * Test if resourceNode is set, set url to null
          */
         if ($method == 'POST' && $website->getHomePage() === null) {
             $this->setHomepage($website, $page);
         } else {
             $this->objectManager->persist($page);
             $this->objectManager->flush();
         }
         $serializationContext = new SerializationContext();
         $serializationContext->setSerializeNull(true);
         return json_decode($this->serializer->serialize($page, 'json', $serializationContext));
     }
     throw new \InvalidArgumentException();
 }
 /**
  * Serializes an object.
  *
  * Implements FormatterInterface::formatItem($item)
  *
  * @param mixed $item
  *
  * @return array
  */
 public function formatItem($item, $format = 'json')
 {
     $formatted = null;
     switch ($format) {
         case 'json':
             // serialize properties with null values
             $context = new SerializationContext();
             $context->setSerializeNull(true);
             $context->enableMaxDepthChecks(true);
             $formatted = $this->getSerializer()->serialize($item, 'json', $context);
             break;
         case 'jsonp':
             $callback = $this->getRequest()->query->get('jsonp.callback', 'JSONP.callback');
             // validate against XSS
             $validator = new \JsonpCallbackValidator();
             if (!$validator->validate($callback)) {
                 throw new BadRequestHttpException('Invalid JSONP callback value');
             }
             $context = new SerializationContext();
             $context->setSerializeNull(true);
             $json = $this->getSerializer()->serialize($item, 'json');
             $formatted = sprintf('/**/%s(%s)', $callback, $json);
             break;
         default:
             // any other format is not supported
             throw new \InvalidArgumentException(sprintf('Format not supported: %s', $format));
     }
     return $formatted;
 }