Issues (404)

Branch: dev

Http/Controllers/ApplicantProfileController.php (9 issues)

1
<?php
2
3
namespace App\Http\Controllers;
4
5
use Illuminate\Support\Facades\Lang;
6
use Illuminate\Http\Request;
7
use App\Models\Lookup\ApplicantProfileQuestion;
8
use App\Models\Applicant;
9
use App\Http\Controllers\Controller;
10
use App\Models\JobPoster;
11
use App\Services\Validation\Rules\LinkedInUrlRule;
12
use App\Services\Validation\Rules\TwitterHandleRule;
13
use Facades\App\Services\WhichPortal;
14
15
class ApplicantProfileController extends Controller
16
{
17
    /**
18
     * @var string
19
     */
20
    protected $answerFormInputName = 'applicantProfileAnswer';
21
22
    /**
23
     * Display the specified resource.
24
     *
25
     * @param  \App\Models\Applicant    $applicant Incoming Applicant object.
26
     * @return \Illuminate\Http\Response
27
     */
28
    public function profile(Applicant $applicant)
29
    {
30
        $custom_breadcrumbs = [
31
            'home' => route('home'),
0 ignored issues
show
The function route was not found. Maybe you did not declare it correctly or list all dependencies? ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-call  annotation

31
            'home' => /** @scrutinizer ignore-call */ route('home'),
Loading history...
32
            $applicant->user->full_name => '',
33
        ];
34
35
        return view(
0 ignored issues
show
The function view was not found. Maybe you did not declare it correctly or list all dependencies? ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-call  annotation

35
        return /** @scrutinizer ignore-call */ view(
Loading history...
36
            'manager/applicant_profile',
37
            [
38
                // Localized strings.
39
                'profile' => Lang::get('manager/applicant_profile'), // Change text
40
                // Applicant data.
41
                'applicant' => $applicant,
42
                'profile_photo_url' => '/images/user.png', // TODO: get real photos.
43
                'custom_breadcrumbs' => $custom_breadcrumbs,
44
            ]
45
        );
46
    }
47
48
    /**
49
     * Display the specified resource.
50
     *
51
     * @param  \App\Models\JobPoster    $jobPoster Incoming JobPoster object.
52
     * @param  \App\Models\Applicant    $applicant Incoming Applicant object.
53
     * @return \Illuminate\Http\Response
54
     */
55
    public function showWithJob(JobPoster $jobPoster, Applicant $applicant)
56
    {
57
58
        // Viewing this page is only possible if the applicant has applied to the specified job.
59
        if ($jobPoster->submitted_applications->firstWhere('applicant_id', '==', $applicant->id) === null) {
60
            return abort(404);
0 ignored issues
show
The function abort was not found. Maybe you did not declare it correctly or list all dependencies? ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-call  annotation

60
            return /** @scrutinizer ignore-call */ abort(404);
Loading history...
61
        }
62
        $custom_breadcrumbs = [
63
            'home' => route('home'),
0 ignored issues
show
The function route was not found. Maybe you did not declare it correctly or list all dependencies? ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-call  annotation

63
            'home' => /** @scrutinizer ignore-call */ route('home'),
Loading history...
64
            'jobs' => route(WhichPortal::prefixRoute('jobs.index')),
65
            $jobPoster->title => route(WhichPortal::prefixRoute('jobs.summary'), $jobPoster),
66
            'applications' =>  route(WhichPortal::prefixRoute('jobs.applications'), $jobPoster),
67
            'profile' => '',
68
        ];
69
70
        return view(
0 ignored issues
show
The function view was not found. Maybe you did not declare it correctly or list all dependencies? ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-call  annotation

70
        return /** @scrutinizer ignore-call */ view(
Loading history...
71
            'manager/applicant_profile',
72
            [
73
                // Localized strings.
74
                'profile' => Lang::get('manager/applicant_profile'), // Change text
75
                // Applicant data.
76
                'applicant' => $applicant,
77
                'profile_photo_url' => '/images/user.png', // TODO: get real photos.
78
                'custom_breadcrumbs' => $custom_breadcrumbs,
79
            ]
80
        );
81
    }
82
83
    /**
84
     * Show the form for editing the logged-in applicant's profile
85
     *
86
     * @param  \Illuminate\Http\Request $request Incoming request.
87
     * @return \Illuminate\Http\Response
88
     */
89
    public function editAuthenticated(Request $request)
90
    {
91
        $applicant = $request->user()->applicant;
92
        return redirect(route('profile.experience.edit', $applicant));
0 ignored issues
show
The function redirect was not found. Maybe you did not declare it correctly or list all dependencies? ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-call  annotation

92
        return /** @scrutinizer ignore-call */ redirect(route('profile.experience.edit', $applicant));
Loading history...
The function route was not found. Maybe you did not declare it correctly or list all dependencies? ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-call  annotation

92
        return redirect(/** @scrutinizer ignore-call */ route('profile.experience.edit', $applicant));
Loading history...
93
    }
94
95
    /**
96
     * Show the form for editing an applicant profile
97
     *
98
     * @param  \Illuminate\Http\Request $request   Incoming request object.
99
     * @param  \App\Models\Applicant    $applicant Applicant to view and edit.
100
     * @return \Illuminate\Http\Response
101
     */
102
    public function edit(Request $request, Applicant $applicant)
103
    {
104
        $profileQuestions = ApplicantProfileQuestion::all();
105
106
        $profileText = Lang::get('applicant/applicant_profile');
107
108
        $profileQuestionForms = [];
109
        foreach ($profileQuestions as $question) {
110
            $answerObj = $applicant->applicant_profile_answers
111
                ->where('applicant_profile_question_id', $question->id)->first();
112
            $answer = $answerObj ? $answerObj->answer : null;
113
114
            $formValues = [
115
                'id' => $question->id,
116
                'question' => $question->question,
117
                'description' => $question->description,
118
                'answer' => $answer,
119
                'answer_label' => $profileText['about_section']['answer_label'],
120
                'input_name' => $this->answerFormInputName . '[' . $question->id . ']'
121
            ];
122
            array_push($profileQuestionForms, $formValues);
123
        }
124
125
        $linkedInUrlPattern = LinkedInUrlRule::PATTERN;
126
        $twitterHandlePattern = TwitterHandleRule::PATTERN;
127
128
        $custom_breadcrumbs = [
129
            'home' => route('home'),
0 ignored issues
show
The function route was not found. Maybe you did not declare it correctly or list all dependencies? ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-call  annotation

129
            'home' => /** @scrutinizer ignore-call */ route('home'),
Loading history...
130
            'profile' => '',
131
        ];
132
133
        return view(
0 ignored issues
show
The function view was not found. Maybe you did not declare it correctly or list all dependencies? ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-call  annotation

133
        return /** @scrutinizer ignore-call */ view(
Loading history...
134
            'applicant/profile_01_about',
135
            [
136
                // Localized strings.
137
                'profile' => $profileText,
138
                // Applicant data.
139
                'applicant' => $applicant,
140
                'profile_photo_url' => '/images/user.png', // TODO: get real photos.
141
                // Applicant Profile Questions.
142
                'applicant_profile_questions' => $profileQuestionForms,
143
                // Update route.
144
                'form_submit_action' => '',
145
                'linkedInUrlPattern' => $linkedInUrlPattern,
146
                'twitterHandlePattern' => $twitterHandlePattern,
147
                'custom_breadcrumbs' => $custom_breadcrumbs,
148
            ]
149
        );
150
    }
151
}
152