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/Http/Controllers/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : /home/corals/job-board.corals.io/Corals/modules/Jobs/Http/Controllers/JobsApplicationController.php
<?php

namespace Corals\Modules\Jobs\Http\Controllers;

use Corals\Foundation\Http\Controllers\BaseController;
use Corals\Modules\Jobs\DataTables\JobApplicationDataTable;
use Corals\Modules\Jobs\Http\Requests\JobApplicationRequest;
use Corals\Modules\Jobs\Models\Job;
use Corals\Modules\Jobs\Models\Jobapplication;
use Corals\Modules\Jobs\Services\JobApplicationService;
use Corals\User\Models\User;


class JobsApplicationController extends BaseController
{

    protected $jobApplicationService;

    public function __construct(JobApplicationService $jobApplicationService)
    {
        $this->jobApplicationService = $jobApplicationService;

        $this->resource_url = config('jobs.models.job_application.resource_url');

        $this->title = trans('Jobs::module.jobApplication.title');
        $this->title_singular = trans('Jobs::module.jobApplication.title_singular');

        parent::__construct();
    }

    /**
     * @param JobApplicationRequest $request
     * @param JobApplicationDataTable $dataTable
     * @return mixed
     */
    public function index(JobApplicationRequest $request, JobApplicationDataTable $dataTable)
    {
        return $dataTable->render('Jobs::job_applications.index');
    }

    /**
     * @param JobApplicationRequest $request
     * @param Job $job
     * @param Jobapplication $jobApplication
     * @return \Illuminate\Contracts\Foundation\Application|\Illuminate\Contracts\View\Factory|\Illuminate\Contracts\View\View
     */

    public function getApplicationForm(JobApplicationRequest $request, Job $job, JobApplication $jobApplication)
    {
        $this->setViewSharedData([
            'title_singular' => trans('Corals::labels.create_title', ['title' => $this->title_singular])
        ]);

        return view('Jobs::job_applications.apply')->with(compact('jobApplication', 'job'));
    }

    /**
     * @param JobApplicationRequest $request
     * @param Job $job
     * @param User $user
     * @return \Illuminate\Foundation\Application|\Illuminate\Http\JsonResponse|mixed
     */
    public function submitApplication(JobApplicationRequest $request, Job $job)
    {
        try {
            $jobApplication = $this->jobApplicationService->store($request,
                JobApplication::class, ['job_id' => $job->id]);

            flash(trans('Corals::messages.success.created', ['item' => $this->title_singular]))->success();
        } catch (\Exception $exception) {
            log_exception($exception, JobApplication::class, 'store');
        }

        return redirectTo('/jobs');
    }

    /**
     * @param JobApplicationRequest $request
     * @param Job $job
     * @param Jobapplication $jobApplication
     * @return \Illuminate\Contracts\Foundation\Application|\Illuminate\Contracts\View\Factory|\Illuminate\Contracts\View\View
     */
    public function updateStatusForm(JobApplicationRequest $request, Job $job, JobApplication $jobApplication)
    {
        $this->setViewSharedData([
            'title_singular' => trans('Corals::labels.create_title', ['title' => $this->title_singular])
        ]);

        return view('Jobs::job_applications.update_status')->with(compact('jobApplication', 'job'));
    }

    /**
     * @param JobApplicationRequest $request
     * @param Job $job
     * @param Jobapplication $jobApplication
     * @return \Illuminate\Foundation\Application|\Illuminate\Http\JsonResponse|mixed
     * @throws \Illuminate\Auth\Access\AuthorizationException
     */
    public function submitUpdateStatus(JobApplicationRequest $request, Job $job, JobApplication $jobApplication)
    {
        $this->authorize('update', $jobApplication);

        try {
            $oldStatus = $jobApplication->status;
            $newStatus = $request->get('status');

            $jobApplication->update(['status' => $newStatus]);

            if ($oldStatus != $newStatus) {
                event('notifications.jobs.job_application_status_changed', [
                    'jobApplication' => $jobApplication,
                    'user' => $jobApplication->user,
                ]);
            }
        } catch (\Exception $exception) {
            log_exception($exception, JobApplication::class, 'update');
        }

        return redirectTo(config('jobs.models.job_application.resource_url'));
    }

}

Spamworldpro Mini