Server IP : 80.87.202.40 / Your IP : 216.73.216.169 Web Server : Apache System : Linux rospirotorg.ru 5.14.0-539.el9.x86_64 #1 SMP PREEMPT_DYNAMIC Thu Dec 5 22:26:13 UTC 2024 x86_64 User : bitrix ( 600) PHP Version : 8.2.27 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /home/bitrix/ext_www/ilovecveti.ru/bitrix/modules/calendar/lib/sync/icloud/ |
Upload File : |
<?php namespace Bitrix\Calendar\Sync\Icloud; use Bitrix\Calendar\Sync\Util\RequestLogger; class ApiClient { /** @var Helper $helper */ protected Helper $helper; /** @var \CDavGroupdavClientCalendar $davClient*/ protected \CDavGroupdavClientCalendar $davClient; /** @var ?RequestLogger $logger*/ protected ?RequestLogger $logger = null; /** @var ?int $userId */ protected ?int $userId = null; /** * @param \CDavGroupdavClientCalendar $davClient * @param int|null $userId * * @throws \Bitrix\Main\ArgumentNullException */ public function __construct(\CDavGroupdavClientCalendar $davClient, int $userId = null) { $this->helper = new Helper(); $this->davClient = $davClient; $this->userId = $userId; if ($this->userId && RequestLogger::isEnabled()) { $this->logger = new RequestLogger($this->userId, $this->helper::ACCOUNT_TYPE); } } /** * @param string $url * @param array|null $properties * @param array|null $filter * @param int $depth * * @return \CDavXmlDocument|null */ public function propfind( string $url, array $properties = null, array $filter = null, int $depth = 1 ): ?\CDavXmlDocument { $this->davClient->Connect(); $result = $this->davClient->Propfind( $url, $properties, $filter, $depth, $this->logger ); $this->davClient->Disconnect(); if (!$result || $this->davClient->getError()) { return null; } return $result->GetBodyXml(); } /** * @param string $url * @param string $data * * @return mixed|null */ public function proppatch(string $url, string $data) { $this->davClient->Connect(); $data = $this->davClient->Decode($data); $result = $this->davClient->Proppatch($url, $data, $this->logger); $this->davClient->Disconnect(); if (!$result) { return null; } return $result->GetStatus(); } /** * @param string $url * @param string $data * * @return mixed|null */ public function mkcol(string $url, string $data) { $this->davClient->Connect(); $data = $this->davClient->Decode($data); $result = $this->davClient->Mkcol($url, $data, $this->logger); $this->davClient->Disconnect(); if (!$result) { return null; } return $result->GetStatus(); } /** * @param string $url * * @return mixed|null */ public function delete(string $url) { $this->davClient->Connect(); $result = $this->davClient->Delete($url, $this->logger); $this->davClient->Disconnect(); if (!$result) { return null; } return $result->GetStatus(); } /** * @param string $url * @param string $data * * @return mixed|null */ public function put(string $url, string $data) { $this->davClient->Connect(); $data = $this->davClient->Decode($data); $result = $this->davClient->Put($url, $data, $this->logger); $this->davClient->Disconnect(); if (!$result) { return null; } return $result->GetStatus(); } }