- Модуль: calendar
- Путь к файлу: ~/bitrix/modules/calendar/lib/sync/managers/connectionmanager.php
- Класс: BitrixCalendarSyncManagersConnectionManager
- Вызов: ConnectionManager::initConnection
public function initConnection(Role $owner, string $accountType, string $server): Result
{
$result = new Result();
$resultData = [];
try {
if (!Loader::includeModule('dav'))
{
throw new LoaderException('Module dav is required');
}
$accountName = $this->getSocialUserLogin($owner, $accountType);
if ($connection = $this->getConnection($owner, $accountType, ['=NAME' => $accountName]))
{
if ($connection->isDeleted())
{
$connection->setDeleted(false);
$this->update($connection);
$resultData['status'] = self::INIT_STATUS['activated'];
}
else
{
$resultData['status'] = self::INIT_STATUS['existed'];
}
}
else
{
$connection = $this->createConnection(
$owner,
$accountType,
$accountName,
$server,
);
$resultData['status'] = self::INIT_STATUS['created'];
}
$resultData['connection'] = $connection;
}
catch (Exception $e)
{
$result->addError(new Error($e->getMessage()));
}
$result->setData($resultData);
return $result;
}