1C-Bitrix 25.700.0
Загрузка...
Поиск...
Не найдено
eventconnection.php
См. документацию.
1<?php
2
3namespace Bitrix\Calendar\Core\Mappers;
4
5use Bitrix\Calendar\Core;
6use Bitrix\Calendar\Core\Base\BaseException;
7use Bitrix\Calendar\Internals\EO_EventConnection;
8use Bitrix\Calendar\Internals\EventConnectionTable;
9use Bitrix\Calendar\Sync;
10use Bitrix\Main\ArgumentException;
11use Bitrix\Main\Loader;
12use Bitrix\Main\LoaderException;
13use Bitrix\Main\ObjectPropertyException;
14use Bitrix\Main\ORM\Query\Result;
15use Bitrix\Main\SystemException;
16use Exception;
17
19{
30 protected function getOneEntityByFilter(array $filter): ?object
31 {
32 if (!Loader::includeModule('dav'))
33 {
34 return null;
35 }
36
37 $link = EventConnectionTable::query()
38 ->setFilter($filter)
39 ->setSelect([
40 ...EventConnectionTable::defaultSelect,
41 'EVENT',
42 'CONNECTION',
43 ])
44 ->exec()->fetchObject();
45
46 if ($link === null)
47 {
48 return null;
49 }
50
51 return $this->convertToObject($link);
52 }
53
57 protected function getEntityName(): string
58 {
59 return 'event connection link';
60 }
61
72 {
73 $data = $this->convertToArray($entity);
74
75 $result = EventConnectionTable::add($data);
76 if ($result->isSuccess())
77 {
78 return $entity->setId($result->getId());
79 }
80
81 throw new BaseException('Error of create EventConnection: '
82 . implode('; ', $result->getErrorMessages()),
83 400);
84 }
85
98 {
99 $data = $this->convertToArray($entity);
100
101 $result = EventConnectionTable::update($entity->getId(), $data);
102
103 if ($result->isSuccess())
104 {
105 return $entity;
106 }
107
108 throw new BaseException('Error of update EventConnection: '
109 . implode('; ', $result->getErrorMessages()),
110 400);
111 }
112
124 protected function deleteEntity(
126 array $params = ['softDelete' => true]
128 {
129// if (!empty($params['softDelete']))
130// {
131// $entity->setActive(false);
132// return $this->updateEntity($entity, $params);
133// }
134
135 $result = EventConnectionTable::delete($entity->getId());
136
137 if ($result->isSuccess())
138 {
139 return null;
140 }
141
142 throw new BaseException('Error of delete EventConnection: '
143 . implode('; ', $result->getErrorMessages()),
144 400);
145 }
146
150 protected function getMapClass(): string
151 {
152 return Sync\Connection\EventConnectionMap::class;
153 }
154
161 protected function convertToObject($objectEO): ?Sync\Connection\EventConnection
162 {
163 if ($objectEO->getEvent() === null || $objectEO->getConnection() === null)
164 {
165 $objectEO->delete();
166
167 return null;
168 }
169
170 $event = $this->prepareEvent($objectEO->getEvent());
171 $connection = $this->prepareConnection($objectEO->getConnection());
172
173 return (new Sync\Connection\EventConnection())
174 ->setLastSyncStatus($objectEO->getSyncStatus())
175 ->setRetryCount($objectEO->getRetryCount())
176 ->setVersion((int)$objectEO->getVersion())
177 ->setVendorEventId($objectEO->getVendorEventId())
178 ->setEntityTag($objectEO->getEntityTag())
179 ->setRecurrenceId($objectEO->getRecurrenceId())
180 ->setVendorVersionId($objectEO->getVendorVersionId())
181 ->setId($objectEO->getId())
182 ->setData($objectEO->getData())
183 ->setEvent($event)
184 ->setConnection($connection)
185 ;
186 }
187
193 private function convertToArray(Sync\Connection\EventConnection $entity): array
194 {
195 return [
196 'EVENT_ID' => $entity->getEvent()->getId(),
197 'CONNECTION_ID' => $entity->getConnection()->getId(),
198 'VENDOR_EVENT_ID' => $entity->getVendorEventId(),
199 'SYNC_STATUS' => $entity->getLastSyncStatus(),
200 'RETRY_COUNT' => $entity->getRetryCount(),
201 'ENTITY_TAG' => $entity->getEntityTag(),
202 'VENDOR_VERSION_ID' => $entity->getVendorVersionId(),
203 'VERSION' => $entity->getVersion(),
204 'DATA' => $entity->getData(),
205 'RECURRENCE_ID' => $entity->getRecurrenceId(),
206 ];
207 }
208
220 {
221 Loader::includeModule('dav');
222 if ($params['select'] === self::DEFAULT_SELECT)
223 {
224 $params['select'] = [
225 ...EventConnectionTable::defaultSelect,
226 'EVENT',
227 'CONNECTION',
228 ];
229 }
230
231 return EventConnectionTable::getList($params);
232 }
233
237 protected function getEntityClass(): string
238 {
239 return Sync\Connection\EventConnection::class;
240 }
241}
$connection
Определения actionsdefinitions.php:38
prepareConnection(EO_DavConnection $connectionEO)
Определения complex.php:22
prepareEvent(EO_Event $eventEO)
Определения complex.php:44
updateEntity($entity, array $params=[])
Определения eventconnection.php:97
getOneEntityByFilter(array $filter)
Определения eventconnection.php:30
deleteEntity(Core\Base\EntityInterface $entity, array $params=['softDelete'=> true])
Определения eventconnection.php:124
createEntity($entity, array $params=[])
Определения eventconnection.php:71
$data['IS_AVAILABLE']
Определения .description.php:13
</td ></tr ></table ></td ></tr >< tr >< td class="bx-popup-label bx-width30"><?=GetMessage("PAGE_NEW_TAGS")?> array( $site)
Определения file_new.php:804
$result
Определения get_property_values.php:14
$entity
$filter
Определения iblock_catalog_list.php:54
$event
Определения prolog_after.php:141
if($inWords) echo htmlspecialcharsbx(Number2Word_Rus(roundEx($totalVatSum $params['CURRENCY']
Определения template.php:799