RegionTranslationController   A
last analyzed

Complexity

Total Complexity 8

Size/Duplication

Total Lines 135
Duplicated Lines 0 %

Test Coverage

Coverage 95.83%

Importance

Changes 3
Bugs 0 Features 2
Metric Value
wmc 8
eloc 42
c 3
b 0
f 2
dl 0
loc 135
ccs 46
cts 48
cp 0.9583
rs 10

6 Methods

Rating   Name   Duplication   Size   Complexity  
A edit() 0 12 1
A create() 0 8 1
A store() 0 21 2
A destroy() 0 7 1
A __construct() 0 3 1
A update() 0 20 2
1
<?php
2
3
namespace DavideCasiraghi\LaravelEventsCalendar\Http\Controllers;
4
5
use DavideCasiraghi\LaravelEventsCalendar\Models\RegionTranslation;
6
use Illuminate\Http\Request;
7
use Illuminate\Support\Str;
8
use Validator;
9
10
class RegionTranslationController extends Controller
11
{
12
    /* Restrict the access to this resource just to logged in users */
13 5
    public function __construct()
14
    {
15 5
        $this->middleware('admin');
16 5
    }
17
18
    /**
19
     * Display a listing of the resource.
20
     *
21
     * @return \Illuminate\Http\Response
22
     */
23
    /*public function index()
24
    {
25
        //
26
    }*/
27
28
    /**
29
     * Show the form for creating a new resource.
30
     * @param int $regionId
31
     * @param string $languageCode
32
     * @return \Illuminate\View\View
33
     */
34 1
    public function create(int $regionId, string $languageCode)
35
    {
36 1
        $selectedLocaleName = $this->getSelectedLocaleName($languageCode);
37
38 1
        return view('laravel-events-calendar::regionTranslations.create')
39 1
                ->with('regionId', $regionId)
40 1
                ->with('languageCode', $languageCode)
41 1
                ->with('selectedLocaleName', $selectedLocaleName);
42
    }
43
44
    /**
45
     * Store a newly created resource in storage.
46
     *
47
     * @param  \Illuminate\Http\Request  $request
48
     * @return \Illuminate\Http\RedirectResponse
49
     */
50 4
    public function store(Request $request)
51
    {
52
        // Validate form datas
53 4
        $validator = Validator::make($request->all(), [
54 4
            'name' => 'required',
55
        ]);
56 4
        if ($validator->fails()) {
57
            return back()->withErrors($validator)->withInput();
58
        }
59
60 4
        $regionTranslation = new RegionTranslation();
61 4
        $regionTranslation->region_id = $request->get('region_id');
62 4
        $regionTranslation->locale = $request->get('language_code');
63
64 4
        $regionTranslation->name = $request->get('name');
65 4
        $regionTranslation->slug = Str::slug($regionTranslation->name, '-');
66
67 4
        $regionTranslation->save();
68
69 4
        return redirect()->route('regions.index')
70 4
                        ->with('success', 'Translation created successfully.');
71
    }
72
73
    /**
74
     * Display the specified resource.
75
     *
76
     * @param  \DavideCasiraghi\LaravelEventsCalendar\Models\RegionTranslation  $regionTranslation
77
     * @return \Illuminate\Http\Response
78
     */
79
    /*public function show(RegionTranslation $regionTranslation)
80
    {
81
        //
82
    }*/
83
84
    /**
85
     * Show the form for editing the specified resource.
86
     * @param int $regionId
87
     * @param string $languageCode
88
     * @return \Illuminate\View\View
89
     */
90 1
    public function edit(int $regionId, string $languageCode)
91
    {
92 1
        $regionTranslation = RegionTranslation::where('region_id', $regionId)
93 1
                        ->where('locale', $languageCode)
94 1
                        ->first();
95
96 1
        $selectedLocaleName = $this->getSelectedLocaleName($languageCode);
97
98 1
        return view('laravel-events-calendar::regionTranslations.edit', compact('regionTranslation'))
99 1
                    ->with('regionId', $regionId)
100 1
                    ->with('languageCode', $languageCode)
101 1
                    ->with('selectedLocaleName', $selectedLocaleName);
102
    }
103
104
    /**
105
     * Update the specified resource in storage.
106
     *
107
     * @param  \Illuminate\Http\Request  $request
108
     * @return \Illuminate\Http\RedirectResponse
109
     */
110 1
    public function update(Request $request)
111
    {
112
        // Validate form datas
113 1
        $validator = Validator::make($request->all(), [
114 1
            'name' => 'required',
115
        ]);
116 1
        if ($validator->fails()) {
117
            return back()->withErrors($validator)->withInput();
118
        }
119
120 1
        $regionTranslation = RegionTranslation::where('id', $request->get('region_translation_id'));
121
122 1
        $region_t = [];
123 1
        $region_t['name'] = $request->get('name');
124 1
        $region_t['slug'] = Str::slug($request->get('name'), '-');
125
126 1
        $regionTranslation->update($region_t);
127
128 1
        return redirect()->route('regions.index')
129 1
                        ->with('success', 'Translation updated successfully');
130
    }
131
132
    /**
133
     * Remove the specified resource from storage.
134
     *
135
     * @param  int  $regionTranslationId
136
     * @return \Illuminate\Http\RedirectResponse
137
     */
138 1
    public function destroy(int $regionTranslationId)
139
    {
140 1
        $regionTranslation = RegionTranslation::find($regionTranslationId);
141 1
        $regionTranslation->delete();
142
143 1
        return redirect()->route('regions.index')
144 1
                        ->with('success', __('laravel-events-calendar::messages.region_translation_deleted_successfully'));
145
    }
146
}
147