ResultController   A
last analyzed

Complexity

Total Complexity 5

Size/Duplication

Total Lines 39
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
eloc 13
c 0
b 0
f 0
dl 0
loc 39
rs 10
wmc 5

4 Methods

Rating   Name   Duplication   Size   Complexity  
A exportResult() 0 3 1
A exportCourseResults() 0 3 1
A exportCertificate() 0 3 1
A store() 0 19 2
1
<?php
2
3
namespace App\Http\Controllers;
4
5
use App\Interfaces\CertificatesInterface;
6
use App\Models\Course;
7
use App\Models\Enrollment;
8
use App\Models\Result;
9
use Illuminate\Http\Request;
10
use Illuminate\Support\Facades\Gate;
11
use Illuminate\Support\Facades\Log;
12
13
class ResultController extends Controller
14
{
15
    /**
16
     * Create or update a result for the selected enrollment.
17
     */
18
    public function store(Request $request)
19
    {
20
        $enrollment = Enrollment::findOrFail($request->input('enrollment'));
21
22
        if (Gate::forUser(backpack_user())->denies('edit-result', $enrollment)) {
23
            abort(403);
24
        }
25
26
        $result = Result::firstOrNew([
27
            'enrollment_id' => $enrollment->id,
28
        ]);
29
30
        $result->result_type_id = $request->input('result');
31
32
        $result->save();
33
34
        Log::info('Enrollment result saved by user '.backpack_user()->id);
0 ignored issues
show
Bug introduced by
Accessing id on the interface Illuminate\Contracts\Auth\Authenticatable suggest that you code against a concrete implementation. How about adding an instanceof check?
Loading history...
35
36
        return $result;
37
    }
38
39
    public function exportResult(Enrollment $enrollment, CertificatesInterface $certificatesService)
40
    {
41
        $certificatesService->exportResult($enrollment);
42
    }
43
44
    public function exportCourseResults(Course $course, CertificatesInterface $certificatesService)
45
    {
46
        $certificatesService->exportCourseResults($course);
47
    }
48
49
    public function exportCertificate(Enrollment $enrollment, CertificatesInterface $certificatesService)
50
    {
51
        $certificatesService->exportCertificate($enrollment);
52
    }
53
}
54