public static function applyForJob($job_id) { $app = \Slim\Slim::getInstance(); if (!\parser\controllers\ApplicationController::isLogin()) { $app->render(401, ['Status' => 'Unauthorised.']); return; } try { $allPostVars = $app->request->post(); $resume_path = \parser\controllers\ApplicationController::saveResumeFromUpload(); $telephone = @$allPostVars['telephone'] ? @trim(htmlspecialchars($allPostVars['telephone'], ENT_QUOTES, 'UTF-8')) : NULL; if (!InputValidator::isValidStringInput($telephone, 10, 8) || !preg_match("/^[0-9]{8,10}\$/", $telephone)) { $app->render(400, ['Status' => 'Invalid input.']); return; } $job = \parser\models\Job::where('id', '=', $job_id)->first(); $user = \parser\models\User::where('email', '=', $_SESSION['email'])->first(); $job_application = \parser\models\Application::where('job_id', '=', $job->id)->where('user_id', '=', $user->id)->first(); if ($user && $job && !$job_application) { $job_application = new \parser\models\Application(); $job_application->user_id = $user->id; $job_application->job_id = $job->id; $job_application->contact = $telephone; $job_application->resume_path = $resume_path; $job_application->save(); shell_exec("/usr/bin/java -jar ../../parser.jar './resume-uploads/{$resume_path}' '{$user->id}' '{$job->id}' '{$job_application->id}' >/dev/null 2>/dev/null &"); echo json_encode($job_application, JSON_UNESCAPED_SLASHES); } else { throw new \Exception('Error!'); } } catch (\Exception $e) { $app->render(500, ['Status' => 'An error occurred.']); } }
public static function updateSettingsForJob($job_id) { $app = \Slim\Slim::getInstance(); if (!\parser\controllers\ApplicationController::isLogin()) { $app->render(401, ['Status' => 'Unauthorised.']); return; } $allPostVars = $app->request->post(); $minimum_score = @$allPostVars['minimum_score'] ? @intval($allPostVars['minimum_score']) : 0; $is_available = @$allPostVars['is_available'] ? @$allPostVars['is_available'] : 0; $is_available = $is_available == "on" ? 1 : 0; if (!preg_match('/^\\d+$/', $minimum_score)) { $app->render(400, ['Status' => 'Invalid input.']); return; } try { $user = \parser\models\User::where('email', '=', $_SESSION['email'])->first(); $job = \parser\models\Job::where('id', '=', $job_id)->whereIn('id', function ($query) use($user) { $query->select('job_id')->from('job_recruiters')->where('user_id', '=', $user->id); })->first(); if ($user && $job) { $job->minimum = $minimum_score; $job->is_available = $is_available; $job->save(); echo json_encode($job, JSON_UNESCAPED_SLASHES); } else { $app->render(401, ['Status' => 'Unauthorised.']); return; } } catch (\Exception $e) { $app->render(500, ['Status' => 'An error occurred.']); return; } }