/**
  * {@inheritdoc}
  */
 public function get(RequestConfiguration $requestConfiguration, RepositoryInterface $repository)
 {
     $resources = $this->resourcesResolver->getResources($requestConfiguration, $repository);
     if ($resources instanceof Pagerfanta) {
         $request = $requestConfiguration->getRequest();
         $resources->setMaxPerPage($requestConfiguration->getPaginationMaxPerPage());
         $resources->setCurrentPage($request->query->get('page', 1));
         if (!$requestConfiguration->isHtmlRequest()) {
             $route = new Route($request->attributes->get('_route'), array_merge($request->attributes->get('_route_params'), $request->query->all()));
             return $this->pagerfantaRepresentationFactory->createRepresentation($resources, $route);
         }
     }
     return $resources;
 }
 /**
  * {@inheritdoc}
  */
 public function getResources(RequestConfiguration $requestConfiguration, RepositoryInterface $repository)
 {
     if (!$requestConfiguration->hasGrid()) {
         return $this->decoratedResolver->getResources($requestConfiguration, $repository);
     }
     $gridDefinition = $this->gridProvider->get($requestConfiguration->getGrid());
     $request = $requestConfiguration->getRequest();
     $parameters = new Parameters($request->query->all());
     $gridView = $this->gridViewFactory->create($gridDefinition, $parameters, $requestConfiguration->getMetadata(), $requestConfiguration);
     if ($requestConfiguration->isHtmlRequest()) {
         return $gridView;
     }
     return $gridView->getData();
 }
 function it_creates_a_paginated_representation_for_pagerfanta_for_non_html_requests(ResourcesResolverInterface $resourcesResolver, RequestConfiguration $requestConfiguration, RepositoryInterface $repository, Pagerfanta $paginator, Request $request, ParameterBag $queryParameters, ParameterBag $requestAttributes, PagerfantaFactory $pagerfantaRepresentationFactory, PaginatedRepresentation $paginatedRepresentation)
 {
     $requestConfiguration->isHtmlRequest()->willReturn(false);
     $requestConfiguration->getPaginationMaxPerPage()->willReturn(8);
     $resourcesResolver->getResources($requestConfiguration, $repository)->willReturn($paginator);
     $requestConfiguration->getRequest()->willReturn($request);
     $request->query = $queryParameters;
     $queryParameters->get('page', 1)->willReturn(6);
     $queryParameters->all()->willReturn(['foo' => 2, 'bar' => 15]);
     $request->attributes = $requestAttributes;
     $requestAttributes->get('_route')->willReturn('sylius_product_index');
     $requestAttributes->get('_route_params')->willReturn(['slug' => 'foo-bar']);
     $paginator->setMaxPerPage(8)->shouldBeCalled();
     $paginator->setCurrentPage(6)->shouldBeCalled();
     $pagerfantaRepresentationFactory->createRepresentation($paginator, Argument::type(Route::class))->willReturn($paginatedRepresentation);
     $this->get($requestConfiguration, $repository)->shouldReturn($paginatedRepresentation);
 }
 function it_uses_decorated_resolver_when_not_using_a_grid(ResourcesResolverInterface $decoratedResolver, RequestConfiguration $requestConfiguration, RepositoryInterface $repository, ResourceInterface $resource)
 {
     $requestConfiguration->hasGrid()->willReturn(false);
     $decoratedResolver->getResources($requestConfiguration, $repository)->willReturn([$resource]);
     $this->getResources($requestConfiguration, $repository)->shouldReturn([$resource]);
 }