use OCP\AppFramework\Http;
use OCP\AppFramework\Utility\ITimeFactory;
use OCP\BackgroundJob\IJobList;
+use OCP\DB\Exception;
use OCP\EventDispatcher\IEventDispatcher;
use OCP\Federation\Events\TrustedServerRemovedEvent;
use OCP\HintException;
private IEventDispatcher $dispatcher;
private ITimeFactory $timeFactory;
+ /** @var list<array{id: int, url: string, url_hash: string, shared_secret: ?string, status: int, sync_token: ?string}>|null */
+ private ?array $trustedServersCache = null;
+
public function __construct(
DbHandler $dbHandler,
IClientService $httpClientService,
$server = $this->dbHandler->getServerById($id);
$this->dbHandler->removeServer($id);
$this->dispatcher->dispatchTyped(new TrustedServerRemovedEvent($server['url_hash']));
+
}
/**
* Get all trusted servers
- * @return list<array{id: int, url: string, url_hash: string, shared_secret: string, status: int, sync_token: string}>
+ *
+ * @return list<array{id: int, url: string, url_hash: string, shared_secret: ?string, status: int, sync_token: ?string}>
+ * @throws Exception
*/
public function getServers() {
- return $this->dbHandler->getAllServer();
+ if ($this->trustedServersCache === null) {
+ $this->trustedServersCache = $this->dbHandler->getAllServer();
+ }
+ return $this->trustedServersCache;
}
/**