chore: implement serice interface changes
All checks were successful
Build Test / test (pull_request) Successful in 41s
JS Unit Tests / test (pull_request) Successful in 39s
PHP Unit Tests / test (pull_request) Successful in 55s

Signed-off-by: Sebastian Krupinski <krupinski01@gmail.com>
This commit is contained in:
2026-05-28 23:27:01 -04:00
parent d1d102e46b
commit aecbd1dc3c
4 changed files with 571 additions and 221 deletions

View File

@@ -14,6 +14,7 @@ use KTXF\Mail\Provider\ProviderServiceDiscoverInterface;
use KTXF\Mail\Provider\ProviderServiceMutateInterface;
use KTXF\Mail\Provider\ProviderServiceTestInterface;
use KTXF\Mail\Service\ServiceBaseInterface;
use KTXF\Mail\Service\ServiceMutableInterface;
use KTXF\Resource\Provider\ResourceServiceLocationInterface;
use KTXF\Resource\Provider\ResourceServiceMutateInterface;
use KTXM\ProviderJmapc\Service\Discovery;
@@ -23,10 +24,9 @@ use KTXM\ProviderJmapc\Stores\ServiceStore;
/**
* JMAP Mail Provider
*/
class Provider implements ProviderServiceMutateInterface, ProviderServiceDiscoverInterface, ProviderServiceTestInterface
class Provider implements ProviderBaseInterface, ProviderServiceMutateInterface, ProviderServiceDiscoverInterface, ProviderServiceTestInterface
{
public const JSON_TYPE = ProviderBaseInterface::JSON_TYPE;
protected const PROVIDER_IDENTIFIER = 'jmap';
protected const PROVIDER_LABEL = 'JMAP Mail Provider';
protected const PROVIDER_DESCRIPTION = 'Provides mail services via JMAP protocol (RFC 8620)';
@@ -155,7 +155,7 @@ class Provider implements ProviderServiceMutateInterface, ProviderServiceDiscove
}
$updated = $this->serviceStore->modify($tenantId, $userId, $service);
return (string) $updated['id'];
return (string) $updated['sid'];
}
public function serviceDestroy(string $tenantId, string $userId, ResourceServiceMutateInterface $service): bool
@@ -180,7 +180,8 @@ class Provider implements ProviderServiceMutateInterface, ProviderServiceDiscove
return $discovery->discover($identity, $location, $secret, $verifySSL);
}
public function serviceTest(ServiceBaseInterface $service, array $options = []): array {
public function serviceTest(ServiceBaseInterface|ServiceMutableInterface $service, array $options = []): array
{
$startTime = microtime(true);
try {
@@ -199,8 +200,7 @@ class Provider implements ProviderServiceMutateInterface, ProviderServiceDiscove
. ' (Account ID: ' . ($session->username() ?? 'N/A') . ')'
. ' (Latency: ' . $latency . ' ms)',
];
} catch (\Exception $e) {
$latency = round((microtime(true) - $startTime) * 1000);
} catch (\Throwable $e) {
return [
'success' => false,
'message' => 'Test failed: ' . $e->getMessage(),