Example #1
0
 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);
 }
Example #2
0
 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);
 }
Example #4
0
 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());
 }
Example #5
0
 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());
 }
Example #6
0
 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);
 }
Example #7
0
 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);
 }
Example #8
0
 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);
 }
Example #9
0
 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));
     }
 }
Example #10
0
 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));
     }
 }
Example #11
0
 protected function handleRequest(array $request)
 {
     $listId = $request[self::FIELD_LIST_ID];
     $title = $request[self::FIELD_TITLE];
     TasksList::update($listId, $title);
 }