diff --git a/composer.lock b/composer.lock index a388ca0b5325f57f347496658256ee78b3cdf6b8..c0faae0462975b5aefbc7de88f942bd1fd5623df 100644 --- a/composer.lock +++ b/composer.lock @@ -348,15 +348,15 @@ }, { "name": "dbp/relay-base-person-bundle", - "version": "v0.2.4", + "version": "v0.2.5", "source": { "type": "git", "url": "https://gitlab.tugraz.at/dbp/relay/dbp-relay-base-person-bundle", - "reference": "493ecdb1f18867ffffd9fc5a24de13ee9661e929" + "reference": "94622ef83ce4b60dd0c599813e44c19e218498fc" }, "require": { "api-platform/core": "^2.6.3", - "dbp/relay-core-bundle": "^0.1.38", + "dbp/relay-core-bundle": "^0.1.60", "ext-json": "*", "guzzlehttp/guzzle": "^7.0", "nelmio/cors-bundle": "^2.1.0", @@ -393,15 +393,15 @@ "license": [ "AGPL-3.0-or-later" ], - "time": "2022-10-27T09:56:57+00:00" + "time": "2022-11-16T10:54:26+00:00" }, { "name": "dbp/relay-core-bundle", - "version": "v0.1.55", + "version": "v0.1.60", "source": { "type": "git", "url": "https://gitlab.tugraz.at/dbp/relay/dbp-relay-core-bundle", - "reference": "b1d1eaa5e9efc58a09e6176215c243041df168f3" + "reference": "93b24a94a428ac21c8ef0262ebea3c1bf7a7823d" }, "require": { "api-platform/core": "^2.6.8 <2.7.0", @@ -465,7 +465,7 @@ "AGPL-3.0-or-later" ], "description": "The core bundle of the Relay API gateway", - "time": "2022-11-10T10:15:38+00:00" + "time": "2022-11-16T10:38:53+00:00" }, { "name": "doctrine/annotations", @@ -1285,16 +1285,16 @@ }, { "name": "kevinrob/guzzle-cache-middleware", - "version": "v4.0.1", + "version": "v4.0.2", "source": { "type": "git", "url": "https://github.com/Kevinrob/guzzle-cache-middleware.git", - "reference": "0a61532ee8bf278a0d875a86a536aeeab592da5a" + "reference": "24b93edc942f2eaaeb17f7ae0d6db0f77f4ed4ea" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Kevinrob/guzzle-cache-middleware/zipball/0a61532ee8bf278a0d875a86a536aeeab592da5a", - "reference": "0a61532ee8bf278a0d875a86a536aeeab592da5a", + "url": "https://api.github.com/repos/Kevinrob/guzzle-cache-middleware/zipball/24b93edc942f2eaaeb17f7ae0d6db0f77f4ed4ea", + "reference": "24b93edc942f2eaaeb17f7ae0d6db0f77f4ed4ea", "shasum": "" }, "require": { @@ -1363,9 +1363,9 @@ ], "support": { "issues": "https://github.com/Kevinrob/guzzle-cache-middleware/issues", - "source": "https://github.com/Kevinrob/guzzle-cache-middleware/tree/v4.0.1" + "source": "https://github.com/Kevinrob/guzzle-cache-middleware/tree/v4.0.2" }, - "time": "2022-03-15T21:47:10+00:00" + "time": "2022-10-02T13:13:18+00:00" }, { "name": "league/uri", @@ -11149,5 +11149,5 @@ "platform-overrides": { "php": "7.3" }, - "plugin-api-version": "2.3.0" + "plugin-api-version": "2.2.0" } diff --git a/src/Service/LDAPApi.php b/src/Service/LDAPApi.php index 88569e8336932ed7465454055a5e630a46908517..050cf760d9066fa8c8b2a7be282b6f09b40c0c01 100644 --- a/src/Service/LDAPApi.php +++ b/src/Service/LDAPApi.php @@ -23,8 +23,6 @@ use Dbp\Relay\CoreBundle\API\UserSessionInterface; use Dbp\Relay\CoreBundle\Exception\ApiError; use Dbp\Relay\CoreBundle\Helpers\Tools as CoreTools; use Dbp\Relay\CoreBundle\LocalData\LocalDataAwareEventDispatcher; -use Dbp\Relay\CoreBundle\Pagination\Pagination; -use Dbp\Relay\CoreBundle\Pagination\Paginator; use Psr\Cache\CacheItemPoolInterface; use Psr\Container\ContainerInterface; use Psr\Log\LoggerAwareInterface; @@ -198,7 +196,7 @@ class LDAPApi implements LoggerAwareInterface, ServiceSubscriberInterface /* * @throws ApiError */ - private function getPeopleUserItems(array $options): AdldapPaginator + private function getPeopleUserItems(int $currentPageNumber, int $maxNumItemsPerPage, array $options): AdldapPaginator { try { $provider = $this->getProvider(); @@ -216,9 +214,8 @@ class LDAPApi implements LoggerAwareInterface, ServiceSubscriberInterface } } - $maxNumItemsPerPage = Pagination::getMaxNumItemsPerPage($options); // API platform's first page is 1, Adldap's first page is 0 - $currentPageIndex = Pagination::getCurrentPageNumber($options) - 1; + $currentPageIndex = $currentPageNumber - 1; return $search->sortBy($this->familyNameAttributeName, 'asc') ->paginate($maxNumItemsPerPage, $currentPageIndex); @@ -229,9 +226,11 @@ class LDAPApi implements LoggerAwareInterface, ServiceSubscriberInterface } /* + * @return Person[] + * * @throws ApiError */ - public function getPersons(array $options): Paginator + public function getPersons(int $currentPageNumber, int $maxNumItemsPerPage, array $options = []): array { $this->eventDispatcher->onNewOperation($options); @@ -240,13 +239,12 @@ class LDAPApi implements LoggerAwareInterface, ServiceSubscriberInterface $options = array_merge($options, $preEvent->getQueryParameters()); $persons = []; - $paginator = $this->getPeopleUserItems($options); - foreach ($paginator as $userItem) { + foreach ($this->getPeopleUserItems($currentPageNumber, $maxNumItemsPerPage, $options) as $userItem) { $person = $this->personFromUserItem($userItem, false); $persons[] = $person; } - return Pagination::createPartialPaginator($persons, $options); + return $persons; } /* diff --git a/src/Service/LDAPPersonProvider.php b/src/Service/LDAPPersonProvider.php index 2609db83d10684e21f559fd4ad9a228fecd9b003..b0581adf2efcd6a627542a19cf30f0fcb1292229 100644 --- a/src/Service/LDAPPersonProvider.php +++ b/src/Service/LDAPPersonProvider.php @@ -7,7 +7,6 @@ namespace Dbp\Relay\BasePersonConnectorLdapBundle\Service; use Dbp\Relay\BasePersonBundle\API\PersonProviderInterface; use Dbp\Relay\BasePersonBundle\Entity\Person; use Dbp\Relay\CoreBundle\Exception\ApiError; -use Dbp\Relay\CoreBundle\Pagination\Paginator; class LDAPPersonProvider implements PersonProviderInterface { @@ -25,11 +24,13 @@ class LDAPPersonProvider implements PersonProviderInterface * * LocalData::INCLUDE_PARAMETER_NAME * * LocalData::QUERY_PARAMETER_NAME * + * @return Person[] + * * @throws ApiError */ - public function getPersons(array $options): Paginator + public function getPersons(int $currentPageNumber, int $maxNumItemsPerPage, array $options = []): array { - return $this->ldapApi->getPersons($options); + return $this->ldapApi->getPersons($currentPageNumber, $maxNumItemsPerPage, $options); } /**