public function createFromRoute($route, MetadataInterface $metadata, RouterInterface $router) { $route = $router->getRouteCollection()->get($route); if ($route === null) { return null; } $parameters = $route->getDefault('_sylius'); $request = new Request(); $parameters = array_merge($this->defaultParameters, $parameters); $parameters = $this->parametersParser->parseRequestValues($parameters, $request); return new $this->configurationClass($metadata, $request, new Parameters($parameters)); }
function it_creates_configuration_without_default_settings(MetadataInterface $metadata, Request $request, ParametersParser $parametersParser, ParameterBag $headersBag, ParameterBag $attributesBag) { $request->headers = $headersBag; $request->attributes = $attributesBag; $attributesBag->get('_sylius', [])->willReturn(['template' => ':Product:list.html.twig']); $parametersParser->parseRequestValues(['template' => ':Product:list.html.twig'], $request)->willReturn(['template' => ':Product:list.html.twig']); $this->create($metadata, $request)->isSortable()->shouldReturn(false); }
function it_creates_configuration_from_resource_metadata_and_request(MetadataInterface $metadata, Request $request, ParametersParser $parametersParser, ParameterBag $headersBag, ParameterBag $attributesBag) { $request->headers = $headersBag; $request->attributes = $attributesBag; $headersBag->has('Accept')->willReturn(false); $headersBag->has('Accept')->willReturn(false); $configuration = ['template' => ':Product:show.html.twig']; $attributesBag->get('_sylius', [])->shouldBeCalled()->willReturn($configuration); $parametersParser->parseRequestValues($configuration, $request)->willReturn($configuration); $this->create($metadata, $request)->shouldHaveType(RequestConfiguration::class); }
/** * {@inheritdoc} */ public function create(MetadataInterface $metadata, Request $request) { $parameters = array_replace_recursive($this->defaultParameters, $this->parseApiParameters($request)); $parameters = $this->parametersParser->parseRequestValues($parameters, $request); return new $this->configurationClass($metadata, $request, new Parameters($parameters)); }