Issues (350)

app/Http/Controllers/ResultController.php (1 issue)

Labels
Severity
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
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