protected function handleRequest(array $request) { $projectId = $request[self::FIELD_PROJECT_ID]; $project = Project::fetch($projectId); // FIXME: global::lock() Project::erase($projectId); Project::shiftLeft($project->getOrd()); }
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()); } }