protected function handleRequest(array $request) { $beforeId = $request[self::FIELD_BEFORE_PROJECT_ID]; $title = $request[self::FIELD_TITLE]; $description = $request[self::FIELD_DESCRIPTION]; // FIXME: Global::lock(); $ord = null; if ($beforeId) { $beforeProject = Project::fetch($beforeId); $ord = $beforeProject->getOrd(); Project::shiftRight($ord); } else { $ord = Project::getNextOrd(); } $projectId = Project::create($ord, $title, $description); return array(self::FIELD_PROJECT_ID => $projectId); }
protected function handleRequest(array $request) { $projectId = $request[self::FIELD_PROJECT_ID]; $beforeProjectId = $request[self::FIELD_BEFORE_PROJECT_ID]; $project = Project::fetch($projectId); // FIXME: Global::lock(); if ($beforeProjectId) { Project::shiftLeft($project->getOrd()); if ($beforeProjectId === $projectId) { throw new Exception("Can't move project before itself", EndPoint::STATUS_BAD_REQUEST); } $beforeProject = Project::fetch($beforeProjectId); Project::shiftRight($beforeProject->getOrd()); Project::updateOrd($projectId, $beforeProject->getOrd()); } else { Project::shiftLeft($project->getOrd()); Project::updateOrd($projectId, Project::getNextOrd()); } }