DutyController::index()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 6

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 2

Importance

Changes 0
Metric Value
dl 0
loc 6
ccs 0
cts 5
cp 0
rs 10
c 0
b 0
f 0
cc 1
nc 1
nop 0
crap 2
1
<?php
2
3
namespace SET\Http\Controllers;
4
5
use SET\Duty;
6
use SET\Group;
7
use SET\Handlers\Duty\DutyList;
8
use SET\Http\Requests\DutyRequest;
9
use SET\User;
10
11
class DutyController extends Controller
12
{
13
    public function index()
14
    {
15
        $duties = Duty::all();
16
17
        return view('duty.index', compact('duties'));
18
    }
19
20 View Code Duplication
    public function create()
21
    {
22
        $this->authorize('edit');
23
24
        $users = User::active()->skipSystem()->get()->sortBy('userFullName')->pluck('userFullName', 'id');
25
        $groups = Group::all()->pluck('name', 'id');
26
27
        return view('duty.create', compact('users', 'groups'));
28
    }
29
30
    public function store(DutyRequest $request)
31
    {
32
        $data = $request->all();
33
        $duty = Duty::create($data);
34
35
        isset($data['groups'])
36
            ? $duty->groups()->attach($data['groups'])
37
            : $duty->users()->attach($data['users']);
38
39
        return redirect()->action('DutyController@index');
40
    }
41
42
    public function show($dutyID)
43
    {
44
        $duty = Duty::findOrFail($dutyID);
45
        $list = (new DutyList($duty))->htmlOutput();
46
47
        return view('duty.show', compact('duty', 'list'));
48
    }
49
50
    public function edit($dutyID)
51
    {
52
        $this->authorize('edit');
53
54
        $duty = Duty::with('users', 'groups')->findOrFail($dutyID);
55
        $users = User::active()->skipSystem()->orderBy('last_name', 'ASC')->get()->pluck('userFullName', 'id');
56
        $groups = Group::orderBy('name', 'ASC')->get()->pluck('name', 'id');
57
58
        return view('duty.edit', compact('duty', 'users', 'groups'));
59
    }
60
61
    public function update(DutyRequest $request, $dutyID)
62
    {
63
        $data = $request->all();
64
        $duty = Duty::findOrFail($dutyID);
65
        $duty->update($data);
66
67
        isset($data['groups'])
68
            ? $duty->groups()->sync($data['groups'])
69
            : $duty->users()->sync($data['users']);
70
71
        (new DutyList($duty))->setLastWorkedDate();
72
73
        return redirect()->action('DutyController@index');
74
    }
75
76
    public function destroy(Duty $duty)
77
    {
78
        $this->authorize('edit');
79
80
        $duty->has_groups ? $duty->groups()->detach() : $duty->users()->detach();
81
82
        $duty->delete();
83
84
        return redirect()->action('DutyController@index');
85
    }
86
}
87