getRepositoryArguments() public method

public getRepositoryArguments ( ) : array
return array
 function it_uses_a_custom_method_if_configured(RequestConfiguration $requestConfiguration, RepositoryInterface $repository, ResourceInterface $resource)
 {
     $requestConfiguration->getRepositoryMethod()->willReturn('findAll');
     $requestConfiguration->getRepositoryArguments()->willReturn(array('foo'));
     $repository->findAll('foo')->willReturn($resource);
     $this->get($requestConfiguration, $repository)->shouldReturn($resource);
 }
 function it_uses_custom_method_and_arguments_if_specified(RequestConfiguration $requestConfiguration, RepositoryInterface $repository, ResourceInterface $firstResource)
 {
     $requestConfiguration->isHtmlRequest()->willReturn(true);
     $requestConfiguration->getRepositoryMethod()->willReturn('findAll');
     $requestConfiguration->getRepositoryArguments()->willReturn(array('foo'));
     $requestConfiguration->isPaginated()->willReturn(false);
     $requestConfiguration->isLimited()->willReturn(true);
     $requestConfiguration->getLimit()->willReturn(15);
     $repository->findAll('foo')->willReturn(array($firstResource));
     $this->get($requestConfiguration, $repository)->shouldReturn(array($firstResource));
 }
Example #3
0
 /**
  * {@inheritdoc}
  */
 public function getResources(RequestConfiguration $requestConfiguration, RepositoryInterface $repository)
 {
     if (null !== ($repositoryMethod = $requestConfiguration->getRepositoryMethod())) {
         $callable = [$repository, $repositoryMethod];
         $resources = call_user_func_array($callable, $requestConfiguration->getRepositoryArguments());
         return $resources;
     }
     if (!$requestConfiguration->isPaginated() && !$requestConfiguration->isLimited()) {
         return $repository->findBy($requestConfiguration->getCriteria(), $requestConfiguration->getSorting());
     }
     if (!$requestConfiguration->isPaginated()) {
         return $repository->findBy($requestConfiguration->getCriteria(), $requestConfiguration->getSorting(), $requestConfiguration->getLimit());
     }
     return $repository->createPaginator($requestConfiguration->getCriteria(), $requestConfiguration->getSorting());
 }
Example #4
0
 /**
  * {@inheritdoc}
  */
 public function getResources(RequestConfiguration $requestConfiguration, RepositoryInterface $repository)
 {
     $repositoryMethod = $requestConfiguration->getRepositoryMethod();
     if (null !== $repositoryMethod) {
         $arguments = array_values($requestConfiguration->getRepositoryArguments());
         return $repository->{$repositoryMethod}(...$arguments);
     }
     if (!$requestConfiguration->isPaginated() && !$requestConfiguration->isLimited()) {
         return $repository->findAll();
     }
     if (!$requestConfiguration->isPaginated()) {
         return $repository->findBy($requestConfiguration->getCriteria(), $requestConfiguration->getSorting(), $requestConfiguration->getLimit());
     }
     return $repository->createPaginator($requestConfiguration->getCriteria(), $requestConfiguration->getSorting());
 }
Example #5
0
 /**
  * {@inheritdoc}
  */
 public function get(RequestConfiguration $requestConfiguration, RepositoryInterface $repository)
 {
     if (null !== ($repositoryMethod = $requestConfiguration->getRepositoryMethod())) {
         $callable = array($repository, $repositoryMethod);
         return call_user_func_array($callable, $requestConfiguration->getRepositoryArguments());
     }
     $criteria = array();
     $request = $requestConfiguration->getRequest();
     if ($request->attributes->has('id')) {
         $criteria = array('id' => $request->attributes->get('id'));
     }
     if ($request->attributes->has('slug')) {
         $criteria = array('slug' => $request->attributes->get('slug'));
     }
     return $repository->findOneBy($criteria);
 }
 /**
  * {@inheritdoc}
  */
 public function get(RequestConfiguration $requestConfiguration, RepositoryInterface $repository)
 {
     $repositoryMethod = $requestConfiguration->getRepositoryMethod();
     if (null !== $repositoryMethod) {
         $arguments = array_values($requestConfiguration->getRepositoryArguments());
         return $repository->{$repositoryMethod}(...$arguments);
     }
     $criteria = [];
     $request = $requestConfiguration->getRequest();
     if ($request->attributes->has('id')) {
         return $repository->find($request->attributes->get('id'));
     }
     if ($request->attributes->has('slug')) {
         $criteria = ['slug' => $request->attributes->get('slug')];
     }
     $criteria = array_merge($criteria, $requestConfiguration->getCriteria());
     return $repository->findOneBy($criteria);
 }
 /**
  * {@inheritdoc}
  */
 public function get(RequestConfiguration $requestConfiguration, RepositoryInterface $repository)
 {
     if (null !== ($repositoryMethod = $requestConfiguration->getRepositoryMethod())) {
         $callable = [$repository, $repositoryMethod];
         return call_user_func_array($callable, $requestConfiguration->getRepositoryArguments());
     }
     if (!$requestConfiguration->isPaginated() && !$requestConfiguration->isLimited()) {
         return $repository->findAll();
     }
     if (!$requestConfiguration->isPaginated()) {
         return $repository->findBy($requestConfiguration->getCriteria(), $requestConfiguration->getSorting(), $requestConfiguration->getLimit());
     }
     $request = $requestConfiguration->getRequest();
     /** @var Pagerfanta $paginator */
     $paginator = $repository->createPaginator($requestConfiguration->getCriteria(), $requestConfiguration->getSorting());
     $paginator->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($paginator, $route);
     }
     return $paginator;
 }
 function it_creates_a_paginated_representation_for_pagerfanta_for_non_html_requests_with_a_custom_repository_method(RequestConfiguration $requestConfiguration, RepositoryInterface $repository, Pagerfanta $paginator, Request $request, ParameterBag $queryParameters, ParameterBag $requestAttributes, PagerfantaFactory $pagerfantaRepresentationFactory, PaginatedRepresentation $paginatedRepresentation)
 {
     $requestConfiguration->isHtmlRequest()->willReturn(false);
     $requestConfiguration->getRepositoryMethod()->willReturn('findAll');
     $requestConfiguration->getRepositoryArguments()->willReturn(['foo']);
     $requestConfiguration->isPaginated()->willReturn(true);
     $requestConfiguration->getPaginationMaxPerPage()->willReturn(5);
     $requestConfiguration->isLimited()->willReturn(false);
     $requestConfiguration->getCriteria()->willReturn([]);
     $requestConfiguration->getSorting()->willReturn([]);
     $repository->findAll('foo')->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(5)->shouldBeCalled();
     $paginator->setCurrentPage(6)->shouldBeCalled();
     $pagerfantaRepresentationFactory->createRepresentation($paginator, Argument::type(Route::class))->willReturn($paginatedRepresentation);
     $this->get($requestConfiguration, $repository)->shouldReturn($paginatedRepresentation);
 }