Passed
Push — feature/experience-api ( 68d96e )
by Tristan
05:53
created

ExperienceController::showForApplication()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 18
Code Lines 13

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 13
dl 0
loc 18
rs 9.8333
c 1
b 0
f 0
cc 1
nc 1
nop 1
1
<?php
2
namespace App\Http\Controllers\Api;
3
4
use App\Http\Controllers\Controller;
5
use App\Http\Resources\Experience as ExperienceResource;
6
use App\Models\Applicant;
7
use App\Models\JobApplication;
8
9
class ExperienceController extends Controller
10
{
11
12
    /**
13
     * Return the list of Experience objects (of all types) associated with an application.
14
     *
15
     * @param JobApplication $application
16
     * @return void
17
     */
18
    public function showForApplication(JobApplication $application)
19
    {
20
        $application->load([
21
            'experiences_work.experience_skills',
22
            'experiences_personal.experience_skills',
23
            'experiences_education.experience_skills',
24
            'experiences_award.experience_skills',
25
            'experiences_community.experience_skills',
26
        ]);
27
        $experiences = array_merge(
28
            ExperienceResource::collection($application->experiences_work)->all(),
29
            ExperienceResource::collection($application->experiences_personal)->all(),
30
            ExperienceResource::collection($application->experiences_education)->all(),
31
            ExperienceResource::collection($application->experiences_award)->all(),
32
            ExperienceResource::collection($application->experiences_community)->all()
33
        );
34
35
        return $experiences;
36
    }
37
38
    /**
39
     * Return the list of Experience objects (of all types) associated with an applicant.
40
     *
41
     * @param Applicant $applicant
42
     * @return void
43
     */
44
    public function showForApplicant(Applicant $applicant)
45
    {
46
        $applicant->load([
47
            'experiences_work.experience_skills',
48
            'experiences_personal.experience_skills',
49
            'experiences_education.experience_skills',
50
            'experiences_award.experience_skills',
51
            'experiences_community.experience_skills',
52
        ]);
53
        $experiences = array_merge(
54
            ExperienceResource::collection($applicant->experiences_work)->all(),
55
            ExperienceResource::collection($applicant->experiences_personal)->all(),
56
            ExperienceResource::collection($applicant->experiences_education)->all(),
57
            ExperienceResource::collection($applicant->experiences_award)->all(),
58
            ExperienceResource::collection($applicant->experiences_community)->all()
59
        );
60
61
        return $experiences;
62
    }
63
}
64