refactor: list and fetch
All checks were successful
Build Test / build (pull_request) Successful in 13s
JS Unit Tests / test (pull_request) Successful in 12s
PHP Unit Tests / test (pull_request) Successful in 33s

Signed-off-by: Sebastian Krupinski <krupinski01@gmail.com>
This commit is contained in:
2026-05-17 17:57:44 -04:00
parent b2a1a17acd
commit 4e1d6d65d0
7 changed files with 39 additions and 11 deletions

View File

@@ -14,6 +14,7 @@ use KTXF\Mail\Collection\CollectionBaseInterface;
use KTXF\Mail\Object\AddressInterface;
use KTXF\Resource\Delta\Delta;
use KTXF\Resource\Filter\IFilter;
use KTXF\Resource\Identifier\EntityIdentifierInterface;
use KTXF\Resource\Provider\ResourceServiceBaseInterface;
use KTXF\Resource\Range\IRange;
use KTXF\Resource\Range\RangeType;
@@ -166,9 +167,9 @@ interface ServiceBaseInterface extends ResourceServiceBaseInterface {
* @param IRange|null $range Optional pagination
* @param array|null $properties Optional message properties to fetch
*
* @return array<string|int,EntityBaseInterface> Messages indexed by ID
* @return array<string,EntityBaseInterface> Messages indexed by Urn
*/
public function entityList(string|int $collection, ?IFilter $filter = null, ?ISort $sort = null, ?IRange $range = null, ?array $properties = null): array;
public function entityListBulk(string|int $collection, ?IFilter $filter = null, ?ISort $sort = null, ?IRange $range = null, ?array $properties = null): array;
/**
* Lists messages in a collection
@@ -244,11 +245,21 @@ interface ServiceBaseInterface extends ResourceServiceBaseInterface {
*
* @since 2025.05.01
*
* @param string|int $collection Collection ID
* @param string|int ...$identifiers Message IDs to fetch
* @param EntityIdentifierInterface ...$identifiers Message identifiers to fetch
*
* @return array<string|int,EntityBaseInterface> Messages indexed by ID
* @return array<string,EntityBaseInterface> Messages indexed by Urn
*/
public function entityFetch(string|int $collection, string|int ...$identifiers): array;
public function entityFetchBulk(EntityIdentifierInterface ...$identifiers): array;
/**
* Fetches one or more entities
*
* @since 2025.05.01
*
* @param EntityIdentifierInterface ...$identifiers Message identifiers to fetch
*
* @return Generator<string,EntityBaseInterface> Yields messages one by one
*/
public function entityFetchStream(EntityIdentifierInterface ...$identifiers): Generator;
}