ProvinceController::store()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 7
Code Lines 4

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
eloc 4
dl 0
loc 7
c 0
b 0
f 0
rs 10
cc 1
nc 1
nop 1
1
<?php
2
3
namespace Turahe\Master\Http\Controllers;
4
5
use Illuminate\Database\QueryException;
6
use Illuminate\Http\RedirectResponse;
7
use Illuminate\Routing\Controller;
8
use Illuminate\View\View;
9
use Turahe\Master\Http\Requests\Province\ProvinceStoreRequest;
10
use Turahe\Master\Http\Requests\Province\ProvinceUpdateRequest;
11
use Turahe\Master\Models\Province;
12
13
/**
14
 * Class ProvinceController.
15
 */
16
class ProvinceController extends Controller
17
{
18
    /**
19
     * @return mixed
20
     */
21
    public function index(): View
22
    {
23
        $provinces = Province::autoSort()->autoFilter()->search(request('search'))->paginate();
24
25
        return  view('master::provinces.index', compact('provinces'));
26
    }
27
28
    /**
29
     * @return View
30
     */
31
    public function create(): View
32
    {
33
        return view('master::provinces.create');
34
    }
35
36
    /**
37
     * @param ProvinceStoreRequest $request
38
     *
39
     * @return RedirectResponse
40
     */
41
    public function store(ProvinceStoreRequest $request): RedirectResponse
42
    {
43
        Province::create($request->validated());
44
45
        return redirect()
46
            ->route('master::provinces.index')
47
            ->with('success', 'Province saved');
48
    }
49
50
    /**
51
     * @param Province $province
52
     *
53
     * @return View
54
     */
55
    public function edit(Province $province): View
56
    {
57
        return view('master::provinces.edit', compact('province'));
58
    }
59
60
    /**
61
     * @param ProvinceUpdateRequest $request
62
     * @param Province              $province
63
     *
64
     * @return RedirectResponse
65
     */
66
    public function update(ProvinceUpdateRequest $request, Province $province): RedirectResponse
67
    {
68
        $province->update($request->validated());
69
70
        return redirect()
71
            ->route('master::provinces.edit', $province)
72
            ->with('success', 'Province saved');
73
    }
74
75
    /**
76
     * @param Province $province
77
     *
78
     * @throws \Exception
79
     *
80
     * @return RedirectResponse
81
     */
82
    public function destroy(Province $province): RedirectResponse
83
    {
84
        try {
85
            $province->delete();
86
87
            return redirect()
88
                ->route('master::provinces.index')
89
                ->with('success', 'Province deleted');
90
        } catch (QueryException $e) {
91
            return redirect()->back()->with('error', $e->getMessage());
92
        }
93
    }
94
}
95