protected function handleRequest(array $request) { $version = $request[self::FIELD_PROTOCOL_VERSION]; $projectTitle = $request[self::FIELD_TITLE]; $projectDescription = $request[self::FIELD_DESCRIPTION]; $projectId = Project::create(Project::getNextOrd(), $projectTitle, $projectDescription); $listsRep = $request[self::FIELD_LISTS]; $listOrd = 0; foreach ($listsRep as $listRep) { $listTitle = $listRep[self::FIELD_TITLE]; $listId = TasksList::create($projectId, ++$listOrd, $listTitle); $tasksRep = $listRep[self::FIELD_TASKS]; $taskOrd = 0; foreach ($tasksRep as $taskRep) { $taskTitle = $taskRep[self::FIELD_TITLE]; $taskDescription = $taskRep[self::FIELD_DESCRIPTION]; $taskId = Task::create($listId, ++$taskOrd, $taskTitle, $taskDescription); if ($version > 1) { $taskStatus = $taskRep[self::FIELD_TASK_STATUS]; Task::updateStatus($taskId, $taskStatus); } } } return array(self::FIELD_PROJECT_ID => $projectId); }
protected function handleRequest(array $request) { $listId = $request[self::FIELD_LIST_ID]; $title = $request[self::FIELD_TITLE]; $description = $request[self::FIELD_DESCRIPTION]; $beforeId = $request[self::FIELD_BEFORE_TASK_ID]; if (isset($request[self::FIELD_AFTER_LAST_OPEN])) { if ($request[self::FIELD_AFTER_LAST_OPEN]) { $beforeId = Task::findNextTaskIdAfterLastOpenTask($listId); } } TasksList::lock($listId); $ord = null; if ($beforeId) { $beforeTask = Task::fetch($beforeId); if ($beforeTask->getListId() !== $listId) { throw new Exception("Insertion point for a new task is in another list", EndPoint::STATUS_BAD_REQUEST); } $ord = $beforeTask->getOrd(); Task::shiftRight($listId, $ord); } else { $ord = Task::getNextOrd($listId); } $taskId = Task::create($listId, $ord, $title, $description); return array(self::FIELD_TASK_ID => $taskId); }
protected function handleRequest(array $request) { $listId = $request[self::FIELD_LIST_ID]; TasksList::lock($listId); $tasksIds = Task::reorderByStatus($listId); return array(self::FIELD_TASK_IDS => $tasksIds); }
protected function handleRequest(array $request) { $taskId = $request[self::FIELD_TASK_ID]; $task = Task::fetch($taskId); $listId = $task->getListId(); TasksList::lock($listId); Task::erase($taskId); Task::shiftLeft($listId, $task->getOrd()); }
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]; $project = Project::fetch($projectId); $lists = TasksList::fetchAllInProject($projectId); $listsRep = array(); foreach ($lists as $list) { $tasks = Task::fetchAllInList($list->getId()); $tasksRep = array(); foreach ($tasks as $task) { $tasksRep[] = array(self::FIELD_TITLE => $task->getTitle(), self::FIELD_DESCRIPTION => $task->getDescription(), self::FIELD_TASK_STATUS => $task->getStatus()); } $listsRep[] = array(self::FIELD_TITLE => $list->getTitle(), self::FIELD_TASKS => $tasksRep); } return array(self::FIELD_PROTOCOL_VERSION => self::CURRENT_PROTOCOL_VERSION, self::FIELD_TITLE => $project->getTitle(), self::FIELD_DESCRIPTION => $project->getDescription(), self::FIELD_LISTS => $listsRep); }
protected function handleRequest(array $request) { $projectId = $request[self::FIELD_PROJECT_ID]; $excludeClosedTasks = $request[self::FIELD_EXCLUDE_CLOSED_TASKS]; $project = Project::fetch($projectId); $lists = TasksList::fetchAllInProject($projectId); $listsRep = array(); foreach ($lists as $list) { $tasks = Task::fetchAllInList($list->getId()); $tasksRep = array(); foreach ($tasks as $task) { if ($excludeClosedTasks && $task->getStatus() == Task::STATUS_CLOSED) { continue; } $tasksRep[] = array(self::FIELD_TASK_ID => $task->getId(), self::FIELD_TITLE => $task->getTitle(), self::FIELD_DESCRIPTION => $task->getDescription(), self::FIELD_TASK_STATUS => $task->getStatus()); } $listsRep[] = array(self::FIELD_LIST_ID => $list->getId(), self::FIELD_TITLE => $list->getTitle(), self::FIELD_TASKS => $tasksRep); } return array(self::FIELD_PROJECT_ID => $project->getId(), self::FIELD_TITLE => $project->getTitle(), self::FIELD_DESCRIPTION => $project->getDescription(), self::FIELD_LISTS => $listsRep); }
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)); } }
protected function handleRequest(array $request) { $taskId = $request[self::FIELD_TASK_ID]; $dstListId = $request[self::FIELD_LIST_ID]; $beforeTaskId = $request[self::FIELD_BEFORE_TASK_ID]; if (isset($request[self::FIELD_AFTER_LAST_OPEN])) { if ($request[self::FIELD_AFTER_LAST_OPEN]) { $beforeTaskId = Task::findNextTaskIdAfterLastOpenTask($dstListId); } } $task = Task::fetch($taskId); $srcListId = $task->getListId(); if ($srcListId !== $dstListId) { $srcList = TasksList::fetch($srcListId); $dstList = TasksList::fetch($dstListId); if ($srcList->getProjectId() !== $dstList->getProjectId()) { throw new Exception("Insertion point for a task is in another project list", EndPoint::STATUS_BAD_REQUEST); } } TasksList::lock($srcListId, $dstListId); if ($beforeTaskId) { Task::shiftLeft($srcListId, $task->getOrd()); if ($beforeTaskId === $taskId) { throw new Exception("Can't move task before itself", EmdPoint::STATUS_BAD_REQUEST); } $beforeTask = Task::fetch($beforeTaskId); if ($beforeTask->getListId() !== $dstListId) { throw new Exception("Insertion point for a task is not in destination list", EndPoint::STATUS_BAD_REQUEST); } Task::shiftRight($dstListId, $beforeTask->getOrd()); Task::updateListAndOrd($taskId, $dstListId, $beforeTask->getOrd()); } else { Task::shiftLeft($srcListId, $task->getOrd()); Task::updateListAndOrd($taskId, $dstListId, Task::getNextOrd($dstListId)); } }
protected function handleRequest(array $request) { $listId = $request[self::FIELD_LIST_ID]; $title = $request[self::FIELD_TITLE]; TasksList::update($listId, $title); }