- Модуль: calendar
- Путь к файлу: ~/bitrix/modules/calendar/lib/sync/office365/eventmanager.php
- Класс: BitrixCalendarSyncOffice365EventManager
- Вызов: EventManager::fetchSectionEvents
public function fetchSectionEvents(SectionConnection $sectionLink): Generator
{
foreach ($this->getService()->getCalendarDelta($sectionLink) as $deltaData)
{
$data = [];
if (!empty($deltaData[Helper::EVENT_TYPES['deleted']]))
{
/** @var EventDto $dto */
$dto = $deltaData[Helper::EVENT_TYPES['deleted']];
$data[] = [
'type' => 'deleted',
'id' => $dto->id,
'version' => $dto->changeKey,
'etag' => $dto->etag,
];
// $this->processEventInstance($deltaData[Helper::EVENT_TYPES['deleted']], $sectionLink);
}
elseif (!empty($deltaData[Helper::EVENT_TYPES['single']]))
{
/** @var EventDto $dto */
$dto = $deltaData[Helper::EVENT_TYPES['single']];
$data[] = [
'type' => 'single',
'event' => $this->context->getConverter()
->convertEvent($dto, $sectionLink->getSection()),
'id' => $dto->id,
'version' => $dto->changeKey,
'etag' => $dto->etag,
'data' => $this->prepareCustomData($dto),
];
}
elseif (!empty($deltaData[Helper::EVENT_TYPES['series']]))
{
$data = $this->prepareSeries($deltaData, $sectionLink);
}
if ($data)
{
yield $data;
}
}
}