3namespace Bitrix\Im\V2\Notification\Group\UserGroup;
5use Bitrix\Im\Model\EO_NotifyGroup;
6use Bitrix\Im\Model\NotifyGroupTable;
7use Bitrix\Im\V2\Notification\Group\UserGroup\Dto\ConditionDto;
8use Bitrix\Im\V2\Notification\Group\UserGroup\Dto\CreateGroupDto;
9use Bitrix\Im\V2\Notification\Group\UserGroup\Dto\UpdateGroupDto;
10use Bitrix\Im\V2\Notification\Group\UserGroup\Result\GroupCreateResult;
11use Bitrix\Im\V2\Notification\NotifyError;
12use Bitrix\Main\DI\ServiceLocator;
13use Bitrix\Main\ORM\Data\AddResult;
14use Bitrix\Main\Type\DateTime;
15use Bitrix\Main\Validation\ValidationService;
16use Bitrix\Main\Result;
25 $this->validation = ServiceLocator::getInstance()->get(
'main.validation.service');
31 $result = $this->validation->validate($createGroupDto);
37 $saveResult = $this->save($createGroupDto);
38 if (!$saveResult->isSuccess())
42 $groupId = $saveResult->getId();
44 $result = $this->conditionRepository->add(
46 module: $createGroupDto->module,
47 event: $createGroupDto->event,
48 userId: $createGroupDto->userId,
64 ->setTitle($createGroupDto->title)
65 ->setUserId($createGroupDto->userId)
72 $result = $this->validation->validate($updateGroupDto);
78 return NotifyGroupTable::update($updateGroupDto->groupId, [
79 NotifyGroupTable::FIELD_TITLE => $updateGroupDto->title,
80 NotifyGroupTable::FIELD_DATE_UPDATE =>
new DateTime(),
86 $this->conditionRepository->deleteByGroupId($model->getId());
90 public function deleteById(
int $id,
bool $withConditions =
true): void
94 $this->conditionRepository->deleteByGroupId($id);
97 NotifyGroupTable::deleteByFilter([
98 NotifyGroupTable::FIELD_ID => $id,
104 $row = NotifyGroupTable::query()
105 ->where(NotifyGroupTable::FIELD_ID, $id)
106 ->where(NotifyGroupTable::FIELD_USER_ID,
$userId)
107 ->setSelect([NotifyGroupTable::FIELD_ID])
if(!is_object($USER)||! $USER->IsAuthorized()) $userId
create(CreateGroupDto $createGroupDto)
isExistsWithUserId(int $id, int $userId)
update(UpdateGroupDto $updateGroupDto)
deleteById(int $id, bool $withConditions=true)