/**
  * @param array $array
  * @return boolean
  */
 public function containsResources(array $array)
 {
     $filtered = array_filter($array, function ($var) {
         return !$this->transformer->isResourcePath($var);
     });
     return count($filtered) === 0;
 }
 /**
  * @param GetResponseForControllerResultEvent $event
  */
 protected function wrapCollection(GetResponseForControllerResultEvent $event)
 {
     $data = $event->getControllerResult();
     if ($data instanceof Collection) {
         $data = $data->toArray();
     }
     $element = reset($data);
     $name = null;
     if ($element) {
         $name = $this->resourceTransformer->getResourcePluralName($element);
     }
     $event->setControllerResult(new CollectionRepresentation($event->getControllerResult(), $name));
 }
 public function testDeserializeValid()
 {
     $this->transformer->method('getResourceProxy')->willReturn($this);
     $listener = $this->getListener();
     $result = $listener->deserializeStrict($this->visitor, 'foobar', ['params' => ['originalType' => self::class]], DeserializationContext::create());
     $this->assertEquals($this, $result);
 }
Esempio n. 4
0
 public function onKernelRequest(KernelEvent $event)
 {
     if (strtoupper($event->getRequest()->getMethod()) !== 'LINK' && strtoupper($event->getRequest()->getMethod()) !== 'UNLINK') {
         return;
     }
     if (!$event->getRequest()->headers->has('link')) {
         throw new BadRequestHttpException('Please specify at least one Link.');
     }
     $requestMethod = $this->urlMatcher->getContext()->getMethod();
     $this->urlMatcher->getContext()->setMethod('GET');
     $links = [];
     /*
      * Due to limitations, multiple same-name headers are sent as comma
      * separated values.
      *
      * This breaks those headers into Link headers following the format
      * http://tools.ietf.org/html/rfc2068#section-19.6.2.4
      */
     foreach (explode(',', $event->getRequest()->headers->get('link')) as $header) {
         $header = trim($header);
         $link = new LinkHeader($header);
         try {
             if ($urlParameters = $this->urlMatcher->match($link->getValue())) {
                 $link->setUrlParameters($urlParameters);
             }
         } catch (ResourceNotFoundException $exception) {
         }
         try {
             $link->setResource($this->resourceTransformer->getResourceProxy($link->getValue()));
         } catch (InvalidArgumentException $e) {
         }
         $links[] = $link;
     }
     $this->urlMatcher->getContext()->setMethod($requestMethod);
     $event->getRequest()->attributes->set('links', $links);
 }
 public function supports(ParamConverter $configuration)
 {
     return $this->resourceTransformer->isResource($configuration->getClass());
 }