/** * @param string $backendId * @param string $privateUri * @param string $userId */ public function remove($backendId, $privateUri, $userId) { $cache = $this->backends->getCache(); $calendar = $cache->findByPrivateUri($backendId, $privateUri, $userId); $objectCache = $calendar->getBackend()->getObjectCache($calendar); $objectCache->clear(); $cache->deleteByUris([['backendId' => $backendId, 'privateUri' => $privateUri, 'userId' => $userId]]); }
/** * @param IBackendCollection $backends */ public function __construct(IBackendCollection $backends) { $this->backends = $backends; $this->cache = $backends->getCache(); $this->updater = $backends->getUpdater(); $this->watcher = $backends->getWatcher(); }
/** * remove deleted calendars from cache * @param string $userId */ public function clean($userId) { /** @var IBackend $backend */ foreach ($this->backends as $backend) { $backendId = $backend->getId(); $calendarAPI = $backend->getCalendarAPI(); $cache = $this->backends->getCache(); $list = $calendarAPI->listAll($userId); $cached = $cache->listAllByBackend($backendId, $userId); $cList = []; foreach ($cached as $c) { $cList[] = $c['privateuri']; } $deletedOnBackend = array_diff($cList, $list); $uris = []; foreach ($deletedOnBackend as $toDelete) { $uris[] = ['backendId' => $backendId, 'privateUri' => $toDelete, 'userId' => $userId]; } $cache->deleteByUris($uris); } }
/** * @param IBackendCollection $backends * @param ILogger $logger */ public function __construct(IBackendCollection $backends, ILogger $logger) { $this->backends = $backends; $this->cache = $backends->getCache(); $this->logger = $logger; }