![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/job-board.corals.io/Corals/modules/Jobs/Classes/ |
<?php namespace Corals\Modules\Jobs\Classes; use Corals\Modules\Jobs\Models\Candidate; use Corals\Modules\Utility\Facades\ListOfValue\ListOfValues; use Corals\Settings\Facades\Settings; use Illuminate\Database\Eloquent\Builder; use Illuminate\Http\Request; class Candidates { public $page_limit; /** * Foo constructor. */ function __construct() { $this->page_limit = Settings::get('jobs_appearance_page_limit', 10); } public function getCandidateList(Request $request,Candidate $candidates) { foreach ($request->all() as $filter => $value) { $filterMethod = $filter . 'QueryBuilderFilter'; if (method_exists($this, $filterMethod) && !empty($value)) { $candidates = $this->{$filterMethod}($candidates, $value); } } return $candidates->select('jo_candidates.*')->paginate($this->page_limit); } protected function searchQueryBuilderFilter($candidates, $search_term) { $candidates = $candidates->whereHas('user', function (Builder $query) use ($search_term) { $query->where('name', $search_term); }); return $candidates; } protected function professionQueryBuilderFilter($candidates, $profession) { $queryMethod = 'where'; if (is_array($profession)) { $queryMethod = 'whereIn'; } $candidates = $candidates->{$queryMethod}('profession', $profession); return $candidates; } protected function locationQueryBuilderFilter($candidates, $location) { $candidates = $candidates->whereHas('location', function (Builder $query) use ($location) { $query->where('slug', $location); }); return $candidates; } protected function sortQueryBuilderFilter($candidates, $sortOption) { switch ($sortOption) { case 'a_z_order': $candidates = $candidates->orderBy('jo_candidates.profession', 'asc'); break; case 'z_a_order': $candidates = $candidates->orderBy('jo_candidates.profession', 'desc'); break; } return $candidates; } public function checkActiveKey($value, $compareWithKey) { if (request()->has($compareWithKey)) { $compareWithValue = request()->get($compareWithKey); if (is_array($compareWithValue)) { return array_search($value, $compareWithValue) !== false; } else { return $value == $compareWithValue; } } return false; } public function getProfessionCount($profession) { return Candidate::where('profession', '=', $profession) ->count(); } public function getprofession() { return ListOfValues::get('professions'); } public function candidatesCount() { return Candidate::all()->count(); } public function getMyCandidate() { return Candidate::query() ->where('user_id', user()->id) ->firstOrFail(); } }