refactor: split service into ServiceBase and LiveService

Signed-off-by: Sebastian Krupinski <krupinski01@gmail.com>
This commit is contained in:
2026-10-07 21:49:31 -04:00
parent eea9b5630a
commit 4e12d41ee9
18 changed files with 649 additions and 516 deletions
+6 -4
View File
@@ -11,7 +11,7 @@ use KTXF\Resource\Filter\IFilter;
use KTXF\Resource\Sort\ISort;
use KTXM\ProviderImap\Client\Mailbox;
use KTXM\ProviderImap\Providers\CollectionResource;
use KTXM\ProviderImap\Providers\Service;
use KTXM\ProviderImap\Providers\LiveService;
use KTXM\ProviderImap\Service\Cache\HarmonizationService;
use KTXM\ProviderImap\Service\Cache\MessageIngestor;
use KTXM\ProviderImap\Service\Live\LiveMailService;
@@ -146,7 +146,7 @@ final class HarmonizationServiceTest extends TestCase
$this->calls[] = ['files.deleteByMailbox', $tid, $sid, $name];
});
$service = (new Service())->fromStore(['tid' => 'tenant', 'sid' => 'svc']);
$service = (new LiveService())->fromStore(['tid' => 'tenant', 'sid' => 'svc']);
$live = new HarmonizationServiceTestLiveStub($service);
$live->mailboxes = array_map(static fn (string $name): Mailbox => new Mailbox($name, '/', []), $remote);
@@ -166,10 +166,12 @@ final class HarmonizationServiceTestLiveStub extends LiveMailService
/** @var Mailbox[] */
public array $mailboxes = [];
public function collectionList(?string $location = null, IFilter|null $filter = null, ISort|null $sort = null, string $depth = '*'): Generator
public function collectionList(?string $location = null, ?IFilter $filter = null, ?ISort $sort = null): array
{
$list = [];
foreach ($this->mailboxes as $mailbox) {
yield $mailbox->name() => $mailbox;
$list[$mailbox->name()] = (new CollectionResource('imap', 'svc'))->fromImap($mailbox);
}
return $list;
}
}