16 return Loader::includeModule(
'tasks');
21 return Dictionary::ENTITY_TYPE[
'task'];
26 $taskId = (int)($this->event->getData()[
'ID'] ??
null);
33 switch ($this->event->getType())
35 case EventDictionary::EVENT_SPACE_TASK_UPDATE:
36 $this->onTaskUpdate();
43 private function onTaskUpdate(): void
45 $data = $this->
event->getData();
46 $taskId =
$data[
'ID'] ??
null;
47 $previousGroupId =
$data[
'PREVIOUS_GROUP_ID'] ??
null;
48 $groupId =
$data[
'GROUP_ID'] ??
null;
49 $oldMemberIds =
$data[
'OLD_MEMBERS'] ?? [];
50 $newMemberIds =
$data[
'NEW_MEMBERS'] ?? [];
51 Collection::normalizeArrayValuesByInt($oldMembers);
52 Collection::normalizeArrayValuesByInt($newMembers);
54 if ($taskId > 0 && $previousGroupId > 0 && $previousGroupId !== $groupId)
56 $this->processPreviousGroupId($taskId, $previousGroupId, $oldMemberIds);
59 $this->processRemovedFromTaskUsers($oldMemberIds, $newMemberIds);
62 private function processPreviousGroupId(
int $taskId,
int $previousGroupId,
array $oldMemberIds): void
64 $this->service->deleteBySpaceId($previousGroupId, $this->
getTypeId(), $taskId);
68 PushEventDictionary::EVENT_SPACE_RECENT_ACTIVITY_REMOVE_FROM_SPACE,
69 [
'spaceIdsToReload' => [$previousGroupId]],
73 private function processRemovedFromTaskUsers(
array $oldMemberIds,
array $newMemberIds): void
75 if ($oldMemberIds === $newMemberIds)
80 $lostAccessUsers = array_values(array_diff($oldMemberIds, $newMemberIds));
82 if (empty($lostAccessUsers))
88 EventDictionary::EVENT_SPACE_TASK_REMOVE_USERS,
90 'TASK_ID' =>
$data[
'ID'] ??
null,
91 'RECEPIENTS' => $lostAccessUsers,