protected function handleRequest(array $request) { $listId = $request[self::FIELD_LIST_ID]; $list = TasksList::fetch($listId); $projectId = $list->getProjectId(); Project::lock($projectId); TasksList::erase($listId); TasksList::shiftLeft($projectId, $list->getOrd()); }
protected function handleRequest(array $request) { $projectId = $request[self::FIELD_PROJECT_ID]; $beforeId = $request[self::FIELD_BEFORE_LIST_ID]; $title = $request[self::FIELD_TITLE]; Project::lock($projectId); $ord = null; if ($beforeId) { $beforeList = TasksList::fetch($beforeId); if ($beforeList->getProjectId() !== $projectId) { throw new Exception("Insertion point for a new list is in another project", EndPoint::STATUS_BAD_REQUEST); } $ord = $beforeList->getOrd(); TasksList::shiftRight($projectId, $ord); } else { $ord = TasksList::getNextOrd($projectId); } $listId = TasksList::create($projectId, $ord, $title); return array(self::FIELD_LIST_ID => $listId); }
protected function handleRequest(array $request) { $listId = $request[self::FIELD_LIST_ID]; $beforeListId = $request[self::FIELD_BEFORE_LIST_ID]; $list = TasksList::fetch($listId); $projectId = $list->getProjectId(); Project::lock($projectId); if ($beforeListId) { TasksList::shiftLeft($projectId, $list->getOrd()); if ($beforeListId === $listId) { throw new Exception("Can't move list before itself", EndPoint::STATUS_BAD_REQUEST); } $beforeList = TasksList::fetch($beforeListId); if ($beforeList->getProjectId() !== $projectId) { throw new Exception("Insertion point for a list is in another project", EndPoint::STATUS_BAD_REQUEST); } TasksList::shiftRight($projectId, $beforeList->getOrd()); TasksList::updateOrd($listId, $beforeList->getOrd()); } else { TasksList::shiftLeft($projectId, $list->getOrd()); TasksList::updateOrd($listId, TasksList::getNextOrd($projectId)); } }