From 735bf822e55577cb5564c4a7765fb9e95fc4a1f9 Mon Sep 17 00:00:00 2001 From: Marc Lemay Date: Mon, 2 Sep 2024 15:40:08 +0200 Subject: [PATCH] add offset to find* methods --- src/Om/Repository/AbstractObjectRepository.php | 15 +++++++++++---- src/Om/Repository/RepositoryInterface.php | 2 +- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/src/Om/Repository/AbstractObjectRepository.php b/src/Om/Repository/AbstractObjectRepository.php index d8ff71d..ead8553 100644 --- a/src/Om/Repository/AbstractObjectRepository.php +++ b/src/Om/Repository/AbstractObjectRepository.php @@ -35,11 +35,18 @@ abstract public function getPropertyValue($identifier, string $property): mixed; /** * @inheritdoc */ - public function findBy(array $criteria, ?array $orderBy = null, ?int $limit = null, ?int $offset = null): array + public function findBy(array $criteria, ?array $orderBy = null, ?int $limit = null, ?int $offset = 0): array { $this->convertDates($criteria); $this->convertSpecial($criteria); - $data = $this->redisClient->search($this->prefix, $criteria, $orderBy ?? [], $this->format, $limit); + $data = $this->redisClient->search( + $this->prefix, + $criteria, + $orderBy ?? [], + $this->format, + $limit, + offset: $offset + ); $collection = []; foreach ($data as $item) { @@ -52,7 +59,7 @@ public function findBy(array $criteria, ?array $orderBy = null, ?int $limit = nu /** * @inheritdoc */ - public function findByLike(array $criteria, ?array $orderBy = null, ?int $limit = null, ?int $offset = null): array + public function findByLike(array $criteria, ?array $orderBy = null, ?int $limit = null, ?int $offset = 0): array { $this->convertDates($criteria); $this->convertSpecial($criteria); @@ -61,7 +68,7 @@ public function findByLike(array $criteria, ?array $orderBy = null, ?int $limit unset($criteria[$property]); } - $data = $this->redisClient->search(prefixKey: $this->prefix, search: $criteria, orderBy: $orderBy ?? [], format: $this->format, numberOfResults: $limit, searchType: Property::INDEX_TEXT); + $data = $this->redisClient->search(prefixKey: $this->prefix, search: $criteria, orderBy: $orderBy ?? [], format: $this->format, numberOfResults: $limit, offset: $offset, searchType: Property::INDEX_TEXT); $collection = []; foreach ($data as $item) { diff --git a/src/Om/Repository/RepositoryInterface.php b/src/Om/Repository/RepositoryInterface.php index 2954781..8ae450d 100644 --- a/src/Om/Repository/RepositoryInterface.php +++ b/src/Om/Repository/RepositoryInterface.php @@ -32,7 +32,7 @@ public function findBy(array $criteria, ?array $orderBy = null, ?int $limit = nu * @param array $criteria as ['property' => 'val'] should return objects where property contains val/value/orval... * @param array|null $orderBy as ['property' => 'ASC|DESC'] */ - public function findByLike(array $criteria, ?array $orderBy = null, ?int $limit = null, ?int $offset = null): array; + public function findByLike(array $criteria, ?array $orderBy = null, ?int $limit = null, ?int $offset = 0): array; /** * Find objects by a full text search.