• Модуль: tasks
  • Путь к файлу: ~/bitrix/modules/tasks/lib/comments/viewed/group.php
  • Класс: BitrixTasksCommentsViewedGroup
  • Вызов: Group::markAsRead
public function markAsRead( ?int $groupId, ?string $role, string $type): Result
{
	$result = new Result();

	$action = $this->resolveAction($groupId, $role, $type);

	$r = $this->prepareByAction($action, ['groupId' => $groupId, 'role' => $role]);
	if ($r->isSuccess())
	{
		[$groupCondition, $userJoin, $select] = $r->getData();
	}
	else
	{
		$result->addErrors($r->getErrors());
		return $result;
	}

	$listGroup = ViewedTable::getListForReadAll($this->userId, $userJoin, $groupCondition, $select);

	$list = $this->collapse($listGroup);

	$items = $this->fillByAction($action, $list);

	$typeName = $type == Enum::SCRUM_NAME ?  Enum::PROJECT_NAME : $type;

	foreach ($items as $item)
	{
		// TODO: replace to batchInert
		ViewedGroupTable::upsert([
			'USER_ID' => $item['USER_ID'],
			'GROUP_ID' => $item['GROUP_ID'],
			'MEMBER_TYPE' => $item['MEMBER_TYPE'],
			'VIEWED_DATE' => new DateTime(),
			'TYPE_ID' => Enum::resolveIdByName($typeName)
		]);
	}

	return $result;
}