1C-Bitrix 25.700.0
Загрузка...
Поиск...
Не найдено
AddLogEntryHandler.php
См. документацию.
1<?php
2
3declare(strict_types=1);
4
5namespace Bitrix\Socialnetwork\Collab\Control\Handler\Add;
6
7use Bitrix\Main\DI\ServiceLocator;
8use Bitrix\Main\Error;
9use Bitrix\Socialnetwork\Collab\Collab;
10use Bitrix\Socialnetwork\Collab\Control\Command\CollabAddCommand;
11use Bitrix\Socialnetwork\Collab\Log\Entry\CreateCollabLogEntry;
12use Bitrix\Socialnetwork\Control\Command\AddCommand;
13use Bitrix\Socialnetwork\Control\Handler\Add\AddHandlerInterface;
14use Bitrix\Socialnetwork\Control\Handler\HandlerResult;
15use Bitrix\Socialnetwork\Item\Workgroup;
16
18{
19 public function add(AddCommand $command, Workgroup $entity): HandlerResult
20 {
21 $handlerResult = new HandlerResult();
22
23 if (!($command instanceof CollabAddCommand) || !($entity instanceof Collab))
24 {
25 $handlerResult->addError(new Error('Unexpected command type'));
26
27 return $handlerResult;
28 }
29
30 $logEntry = new CreateCollabLogEntry(
31 userId: $command->getInitiatorId(),
32 collabId: $entity->getId(),
33 );
34
35 $logEntry->setDescription($command->getDescription() ?? '');
36
37 try
38 {
39 $service = ServiceLocator::getInstance()->get('socialnetwork.collab.log.service');
40 $service->save($logEntry);
41 }
42 catch (\Exception $exception)
43 {
44 $handlerResult->addError(Error::createFromThrowable($exception));
45 }
46
47 return $handlerResult;
48 }
49}
Определения error.php:15
Определения AddLogEntryHandler.php:18
add(AddCommand $command, Workgroup $entity)
Определения AddLogEntryHandler.php:19
Определения CreateCollabLogEntry.php:8
$entity
$service
Определения payment.php:18