@@ 58-79 (lines=22) @@ | ||
55 | /** |
|
56 | * {@inheritdoc} |
|
57 | */ |
|
58 | public function applyToCollection(Builder $queryBuilder, string $resourceClass, string $operationName = null) |
|
59 | { |
|
60 | $request = $this->requestStack->getCurrentRequest(); |
|
61 | if (null === $request) { |
|
62 | return; |
|
63 | } |
|
64 | ||
65 | $resourceMetadata = $this->resourceMetadataFactory->create($resourceClass); |
|
66 | if (!$this->isPaginationEnabled($request, $resourceMetadata, $operationName)) { |
|
67 | return; |
|
68 | } |
|
69 | ||
70 | $itemsPerPage = $resourceMetadata->getCollectionOperationAttribute($operationName, 'pagination_items_per_page', $this->itemsPerPage, true); |
|
71 | if ($resourceMetadata->getCollectionOperationAttribute($operationName, 'pagination_client_items_per_page', $this->clientItemsPerPage, true)) { |
|
72 | $itemsPerPage = (int) $request->query->get($this->itemsPerPageParameterName, $itemsPerPage); |
|
73 | } |
|
74 | ||
75 | $queryBuilder |
|
76 | ->skip(($request->query->get($this->pageParameterName, 1) - 1) * $itemsPerPage) |
|
77 | ->limit($itemsPerPage) |
|
78 | ; |
|
79 | } |
|
80 | ||
81 | /** |
|
82 | * {@inheritdoc} |
@@ 60-80 (lines=21) @@ | ||
57 | /** |
|
58 | * {@inheritdoc} |
|
59 | */ |
|
60 | public function applyToCollection(QueryBuilder $queryBuilder, string $resourceClass, string $operationName = null) |
|
61 | { |
|
62 | $request = $this->requestStack->getCurrentRequest(); |
|
63 | if (null === $request) { |
|
64 | return; |
|
65 | } |
|
66 | ||
67 | $resourceMetadata = $this->resourceMetadataFactory->create($resourceClass); |
|
68 | if (!$this->isPaginationEnabled($request, $resourceMetadata, $operationName)) { |
|
69 | return; |
|
70 | } |
|
71 | ||
72 | $itemsPerPage = $resourceMetadata->getCollectionOperationAttribute($operationName, 'pagination_items_per_page', $this->itemsPerPage, true); |
|
73 | if ($resourceMetadata->getCollectionOperationAttribute($operationName, 'pagination_client_items_per_page', $this->clientItemsPerPage, true)) { |
|
74 | $itemsPerPage = (int) $request->query->get($this->itemsPerPageParameterName, $itemsPerPage); |
|
75 | } |
|
76 | ||
77 | $queryBuilder |
|
78 | ->setFirstResult(($request->query->get($this->pageParameterName, 1) - 1) * $itemsPerPage) |
|
79 | ->setMaxResults($itemsPerPage); |
|
80 | } |
|
81 | ||
82 | /** |
|
83 | * {@inheritdoc} |