コード例 #1
0
 /**
  * Validate the json input to prevent errors in the following components
  *
  * @param RestEvent $event Event
  *
  * @return void|null
  */
 public function onKernelRequest(RestEvent $event)
 {
     $request = $event->getRequest();
     if ($request->headers->has('Accept')) {
         $format = $request->getFormat($request->headers->get('Accept'));
         if (!empty($format)) {
             $request->setRequestFormat($format);
         }
     }
 }
コード例 #2
0
 /**
  * Test RqlAllowedOperatorRequestListener::onKernelRequest() with exception
  *
  * @param Query $query Query
  * @return void
  *
  * @dataProvider dataOnKernelRequestWithException
  */
 public function testOnKernelRequestWithException(Query $query)
 {
     $this->setExpectedException(RqlOperatorNotAllowedException::class);
     $request = new Request();
     $request->attributes->set('rqlQuery', $query);
     $request->attributes->set('_route', 'model.get');
     $event = new RestEvent();
     $event->setRequest($request);
     $listener = new RqlAllowedOperatorRequestListener();
     $listener->onKernelRequest($event);
 }
コード例 #3
0
 /**
  * Adds the configured formats and mimetypes to the request.
  *
  * @param RestEvent $event Event
  *
  * @return void|null
  */
 public function onKernelRequest(RestEvent $event)
 {
     $request = $event->getRequest();
     if ($request->headers->has('Accept')) {
         $format = $request->getFormat($request->headers->get('Accept'));
         if (empty($format)) {
             foreach ($this->container->getParameter('graviton.rest.special_mimetypes') as $format => $types) {
                 $mimetypes = $request->getMimeType($format);
                 if (!empty($mimetypes)) {
                     $mimetypes = is_array($mimetypes) ? $mimetypes : array($mimetypes);
                     $types = array_unique(array_merge_recursive($mimetypes, $types));
                 }
                 $request->setFormat($format, $types);
             }
         }
     }
 }
コード例 #4
0
 /**
  * Process RQL query if it is allowed for current route
  *
  * @param RestEvent $event Event
  * @return void
  */
 public function onKernelRequest(RestEvent $event)
 {
     $rqlQuery = $event->getRequest()->attributes->get('rqlQuery');
     if ($rqlQuery === null) {
         return;
     }
     $route = $event->getRequest()->attributes->get('_route');
     if (substr($route, -4) !== '.get') {
         return;
     }
     foreach (['getQuery', 'getSort', 'getLimit'] as $method) {
         /** @var AbstractNode $node */
         $node = $rqlQuery->{$method}();
         if ($node === null) {
             continue;
         }
         throw new RqlOperatorNotAllowedException($node->getNodeName());
     }
 }