1C-Bitrix 25.700.0
Загрузка...
Поиск...
Не найдено
SetOptionsTrait.php
См. документацию.
1<?php
2
3declare(strict_types=1);
4
5namespace Bitrix\Socialnetwork\Collab\Control\Handler\Trait;
6
7use Bitrix\Main\DI\ServiceLocator;
8use Bitrix\Main\Error;
9use Bitrix\Socialnetwork\Collab\Control\Command\CollabAddCommand;
10use Bitrix\Socialnetwork\Collab\Control\Command\CollabUpdateCommand;
11use Bitrix\Socialnetwork\Collab\Control\Option\Command\SetOptionsCommand;
12use Bitrix\Socialnetwork\Control\Command\AbstractCommand;
13use Bitrix\Socialnetwork\Control\Handler\HandlerResult;
14use Bitrix\Socialnetwork\Item\Workgroup;
15
16trait SetOptionsTrait
17{
18 public function setOptions(AbstractCommand $command, Workgroup $entity): HandlerResult
19 {
20 $handlerResult = new HandlerResult();
21 if (!$this->isParamsCorrect($handlerResult, $command))
22 {
23 return $handlerResult;
24 }
25
26 $options = $command->getOptions();
27 if ($options === null)
28 {
29 return $handlerResult;
30 }
31
32 $optionCommand = (new SetOptionsCommand())
33 ->setCollabId($entity->getId())
34 ->setOptions($options);
35
36 $service = ServiceLocator::getInstance()->get('socialnetwork.collab.option.service');
37
38 $optionResult = $service->set($optionCommand);
39
40 if (!empty($options->getValue()))
41 {
42 $handlerResult->setGroupChanged();
43 }
44
45 return $handlerResult->merge($optionResult);
46 }
47
48 private function isParamsCorrect(HandlerResult $handlerResult, AbstractCommand $command): bool
49 {
50 if (!($command instanceof CollabAddCommand || $command instanceof CollabUpdateCommand))
51 {
52 $handlerResult->addError(new Error('Unexpected command type'));
53
54 return false;
55 }
56
57 return true;
58 }
59}
Определения error.php:15
$entity
$service
Определения payment.php:18