• Модуль: tasks
  • Путь к файлу: ~/bitrix/modules/tasks/lib/rest/controllers/scrum/sprint.php
  • Класс: BitrixTasksRestControllersScrumSprint
  • Вызов: Sprint::completeAction
public function completeAction(int $id)
{
	$groupId = (int) $id;
	if (!$groupId)
	{
		$this->errorCollection->add([new Error('Group id not found')]);

		return null;
	}

	$sprintService = new SprintService();

	$sprint = $sprintService->getActiveSprintByGroupId($groupId);

	if ($sprint->isEmpty())
	{
		$this->errorCollection->add([new Error('Sprint not found')]);

		return null;
	}

	if (!$sprintService->canCompleteSprint($this->getUserId(), $sprint->getGroupId()))
	{
		$this->errorCollection->add([new Error('Access denied')]);

		return null;
	}

	if (!$this->checkAccess($sprint->getGroupId()))
	{
		$this->errorCollection->add([new Error('Access denied')]);

		return null;
	}

	$entityService = new EntityService();
	$kanbanService = new KanbanService();
	$itemService = new ItemService();
	$taskService = new TaskService($this->getUserId());
	$backlogService = new BacklogService();

	$backlog = $backlogService->getBacklogByGroupId($sprint->getGroupId());

	$sprint = $sprintService->completeSprint(
		$sprint,
		$entityService,
		$taskService,
		$kanbanService,
		$itemService,
		$backlog->getId()
	);
	if ($sprintService->getErrors())
	{
		$this->errorCollection->add($this->getErrors());

		return null;
	}

	return $sprint->toArray();
}