예제 #1
0
 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;
 }