/** * @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); }
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()); }