refactor: improvemets
All checks were successful
Build Test / test (pull_request) Successful in 1m44s
JS Unit Tests / test (pull_request) Successful in 1m45s
PHP Unit Tests / test (pull_request) Successful in 2m24s

Signed-off-by: Sebastian Krupinski <krupinski01@gmail.com>
This commit is contained in:
2026-03-24 19:12:26 -04:00
parent 3e899a50bd
commit 4730b75a05
11 changed files with 1730 additions and 20 deletions

View File

@@ -14,12 +14,17 @@ use JmapClient\Authentication\Bearer;
use JmapClient\Authentication\JsonBasic;
use JmapClient\Authentication\JsonBasicCookie;
use JmapClient\Client as JmapClient;
use KTXC\Server;
use KTXF\Resource\Provider\ResourceServiceBaseInterface;
use KTXF\Resource\Provider\ResourceServiceIdentityBasic;
use KTXF\Resource\Provider\ResourceServiceIdentityBearer;
use KTXF\Resource\Provider\ResourceServiceIdentityOAuth;
use KTXF\Resource\Provider\ResourceServiceLocationUri;
use KTXM\ProviderJmapc\Providers\Mail\Service;
use KTXM\ProviderJmapc\Providers\Mail\Service as MailService;
use KTXM\ProviderJmapc\Providers\Contacts\Service as ContactsService;
use KTXM\ProviderJmapc\Providers\Events\Service as EventsService;
use KTXM\ProviderJmapc\Providers\Tasks\Service as TasksService;
use KTXM\ProviderJmapc\Providers\Document\Service as FilesService;
use KTXM\ProviderJmapc\Service\Remote\FM\RemoteContactsServiceFM;
use KTXM\ProviderJmapc\Service\Remote\FM\RemoteCoreServiceFM;
use KTXM\ProviderJmapc\Service\Remote\FM\RemoteEventsServiceFM;
@@ -33,7 +38,7 @@ class RemoteService {
*
* @since Release 1.0.0
*/
public static function freshClient(Service $service): JmapClient {
public static function freshClient(MailService|FilesService $service): JmapClient {
// defaults
$client = new JmapClient();
@@ -98,7 +103,7 @@ class RemoteService {
}
// construct service based on capabilities
if ($Client->sessionCapable('https://www.fastmail.com/dev/user', false)) {
$service = new RemoteCoreServiceFM();
//$service = new RemoteCoreServiceFM();
} else {
$service = new RemoteCoreService();
}
@@ -176,6 +181,21 @@ class RemoteService {
return $service;
}
/**
* Appropriate Documents Service for Connection
*
* @since Release 1.0.0
*/
public static function documentsService(JmapClient $Client, ?string $dataAccount = null): RemoteFilesService {
// determine if client is connected
if (!$Client->sessionStatus()) {
$Client->connect();
}
$service = new RemoteFilesService();
$service->initialize($Client, $dataAccount);
return $service;
}
public static function cookieStoreRetrieve(mixed $id): ?array {
$file = sys_get_temp_dir() . DIRECTORY_SEPARATOR . (string)$id . '.jmapc';
@@ -185,7 +205,7 @@ class RemoteService {
}
$data = file_get_contents($file);
$crypto = \OC::$server->get(\OCP\Security\ICrypto::class);
$crypto = Server::getInstance()->container()->get(\KTXF\Security\Crypto::class);
$data = $crypto->decrypt($data);
if (!empty($data)) {
@@ -202,7 +222,7 @@ class RemoteService {
return;
}
$crypto = \OC::$server->get(\OCP\Security\ICrypto::class);
$crypto = Server::getInstance()->container()->get(\KTXF\Security\Crypto::class);
$data = $crypto->encrypt(json_encode($value));
$file = sys_get_temp_dir() . DIRECTORY_SEPARATOR . (string)$id . '.jmapc';