3namespace Bitrix\Calendar\Internals\Counter\Processor;
5use Bitrix\Calendar\Integration\Dav\ConnectionProvider;
6use Bitrix\Calendar\Internals\Counter\CounterDictionary;
7use Bitrix\Calendar\Internals\Counter\Event\Event;
8use Bitrix\Calendar\Internals\Counter\Event\EventCollection;
9use Bitrix\Calendar\Internals\Counter\Event\EventDictionary;
10use Bitrix\Calendar\Sync\Caldav;
11use Bitrix\Calendar\Sync\Icloud;
12use Bitrix\Calendar\Sync\Google;
13use Bitrix\Calendar\Sync\Office365;
18 private const SUPPORTED_EVENTS = [
19 EventDictionary::SYNC_CHANGED,
20 EventDictionary::COUNTERS_UPDATE,
23 private const PROVIDERS = [
33 foreach ($events as
$event)
36 $eventType =
$event->getType();
38 if (in_array($eventType, self::SUPPORTED_EVENTS,
true))
40 $affectedUsers =
$event->getData()[
'user_ids'] ?? [];
41 $this->recountSyncErrors($affectedUsers);
46 private function recountSyncErrors(
array $users): void
53 $davConnectionProvider =
new ConnectionProvider();
58 $connections = $davConnectionProvider->getSyncConnections(
$userId,
'user', self::PROVIDERS);
if(!is_object($USER)||! $USER->IsAuthorized()) $userId
const COUNTER_SYNC_ERRORS
const GOOGLE_ACCOUNT_TYPE_API
static isConnectionSuccess(string $lastResult=null)
</td ></tr ></table ></td ></tr >< tr >< td class="bx-popup-label bx-width30"><?=GetMessage("PAGE_NEW_TAGS")?> array( $site)