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

ExperienceController   A

Complexity

Total Complexity 2

Size/Duplication

Total Lines 53
Duplicated Lines 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
wmc 2
eloc 27
dl 0
loc 53
rs 10
c 1
b 0
f 0

2 Methods

Rating   Name   Duplication   Size   Complexity  
A showForApplication() 0 18 1
A showForApplicant() 0 18 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