public static function delete(array $restOfRoute) { RecruiterController::requireLogin(); $jobId = self::getIdFromRoute($restOfRoute); if (is_null($jobId)) { return; } // Make sure job exists. // Make sure recruiter has permission to edit the job. if (!self::checkJobExists($jobId)) { return; } if (!self::ownsJob($jobId)) { return; } // Delete all applications with jobid. ApplicationModel::deleteByJob($jobId); // Delete from questions' uses this jobid. $application = ApplicationJob::get($jobId); $questions = []; if (!is_null($application)) { $questions = $application->getQuestions(); } foreach ($questions as $questionId) { QuestionModel::removeFromUses($questionId, $jobId); } // Delete this job. JobModel::deleteById($jobId); // Redirect back to home. self::redirect('../home'); }
/** * Saves the questionIds from client for $jobId. * Returns true if performed. */ private static function save(MongoId $jobId) { global $params; if (!isset($params['saving'])) { return false; } $questionIds = isset($params['questionIds']) ? $params['questionIds'] : []; // Convert all questionIds to MongoIds. foreach ($questionIds as $index => $val) { $questionIds[$index] = new MongoId($val); } // Get old questionIds and find ones to decrement/increment uses. $oldApplication = ApplicationJob::get($jobId); $oldQuestions = []; if ($oldApplication != null) { $oldQuestions = $oldApplication->getQuestions(); } self::updateQuestionUses($jobId, $oldQuestions, $questionIds); // Update job application questions. $success = ApplicationJob::createOrUpdate($jobId, $questionIds); return true; }