Passed
Push — feature/hr-portal ( 1bbce6...e6c14c )
by Grant
10:44
created

JobSummaryController::unclaimJob()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 5
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
eloc 2
c 0
b 0
f 0
dl 0
loc 5
rs 10
cc 1
nc 1
nop 2
1
<?php
2
3
namespace App\Http\Controllers;
4
5
use App\Http\Controllers\Controller;
6
use App\Models\JobPoster;
7
use App\Models\HrAdvisor;
8
use Illuminate\Http\Request;
9
use Illuminate\Support\Facades\Auth;
10
use Illuminate\Support\Facades\Lang;
11
12
class JobSummaryController extends Controller
13
{
14
    /**
15
     * Display the specified job summary.
16
     *
17
     * @param  \Illuminate\Http\Request $request Incoming request object.
18
     * @param  \App\Models\JobPoster $job Job Poster object.
19
     * @return \Illuminate\Http\Response
20
     */
21
    public function show(Request $request, JobPoster $job)
22
    {
23
        $user = Auth::user();
24
25
        $applications = $job->submitted_applications;
26
        $advisor = $user->hr_advisor;
0 ignored issues
show
Bug introduced by
Accessing hr_advisor on the interface Illuminate\Contracts\Auth\Authenticatable suggest that you code against a concrete implementation. How about adding an instanceof check?
Loading history...
27
        $jobIsClaimed = ($advisor !== null) &&
28
            $advisor->claimed_jobs->pluck('id')->contains($job->id);
29
30
        $data = [
31
            // Localized strings.
32
            'summary' => Lang::get('hr_advisor/job_summary'),
33
            'is_claimed' => $jobIsClaimed,
34
            // User data.
35
            'user' => $user,
36
            // Job Poster data.
37
            'job' => $job,
38
            // Application data.
39
            'applications' => $applications,
40
            // TODO: Add Routes.
41
            // 'send_manager' => ,
42
            // 'send_translation' => ,
43
            // 'approve_publishing' => ,
44
            'relinquish_job' => route('hr_advisor.jobs.unclaim', $job),
45
        ];
46
47
        return view(
48
            'hr_advisor/job_summary',
49
            $data
50
        );
51
    }
52
53
    /**
54
     * Unclaim a Job Poster.
55
     *
56
     * @param  \App\Models\HrAdvisor  $hrAdvisor
57
     * @param  \App\Models\JobPoster  $job
58
     * @return \Illuminate\Http\Response
59
     */
60
    public function unclaimJob(HrAdvisor $hrAdvisor, JobPoster $job)
61
    {
62
        $hrAdvisor->claimed_jobs()->detach($job);
63
64
        return redirect()->route('hr_advisor.jobs.summary', $job);
65
    }
66
}
67