/** * {@inheritdoc} */ public function create(Grid $grid, Parameters $parameters, MetadataInterface $metadata, RequestConfiguration $requestConfiguration) { $driverConfiguration = $grid->getDriverConfiguration(); $request = $requestConfiguration->getRequest(); $grid->setDriverConfiguration($this->parametersParser->parseRequestValues($driverConfiguration, $request)); return new ResourceGridView($this->dataProvider->getData($grid, $parameters), $grid, $parameters, $metadata, $requestConfiguration); }
function it_creates_configuration_without_default_settings(ParametersParserInterface $parametersParser, MetadataInterface $metadata, Request $request, 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_uses_data_provider_to_create_a_view_with_data_and_definition(DataProviderInterface $dataProvider, ParametersParserInterface $parametersParser, Grid $grid, Parameters $parameters, MetadataInterface $resourceMetadata, Request $request, RequestConfiguration $requestConfiguration) { $expectedResourceGridView = new ResourceGridView(['foo', 'bar'], $grid->getWrappedObject(), $parameters->getWrappedObject(), $resourceMetadata->getWrappedObject(), $requestConfiguration->getWrappedObject()); $requestConfiguration->getRequest()->willReturn($request); $parametersParser->parseRequestValues(['repository' => ['method' => 'createByCustomerQueryBuilder', 'arguments' => ['$customerId']]], $request)->willReturn(['repository' => ['method' => 'createByCustomerQueryBuilder', 'arguments' => [5]]]); $grid->getDriverConfiguration()->willReturn(['repository' => ['method' => 'createByCustomerQueryBuilder', 'arguments' => ['$customerId']]]); $grid->setDriverConfiguration(['repository' => ['method' => 'createByCustomerQueryBuilder', 'arguments' => [5]]])->shouldBeCalled(); $dataProvider->getData($grid, $parameters)->willReturn(['foo', 'bar']); $this->create($grid, $parameters, $resourceMetadata, $requestConfiguration)->shouldBeSameResourceGridViewAs($expectedResourceGridView); }
/** * {@inheritdoc} */ public function create(MetadataInterface $metadata, Request $request) { $parameters = array_merge($this->defaultParameters, $this->parseApiParameters($request)); $parameters = $this->parametersParser->parseRequestValues($parameters, $request); return new $this->configurationClass($metadata, $request, new Parameters($parameters)); }