Passed
Push — master ( 8372f4...8e3d45 )
by Davide
07:49 queued 11s
created

RegionTranslationController::store()   A

Complexity

Conditions 2
Paths 2

Size

Total Lines 21
Code Lines 12

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 6

Importance

Changes 1
Bugs 0 Features 1
Metric Value
eloc 12
dl 0
loc 21
ccs 0
cts 16
cp 0
rs 9.8666
c 1
b 0
f 1
cc 2
nc 2
nop 1
crap 6
1
<?php
2
3
namespace DavideCasiraghi\LaravelEventsCalendar\Http\Controllers;
4
5
use Validator;
6
use Illuminate\Support\Str;
7
use Illuminate\Http\Request;
8
use DavideCasiraghi\LaravelEventsCalendar\Models\RegionTranslation;
9
10
class RegionTranslationController extends Controller
11
{
12
    /* Restrict the access to this resource just to logged in users */
13
    public function __construct()
14
    {
15
        $this->middleware('admin');
16
    }
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 int $languageCode
32
     * @return \Illuminate\Http\Response
33
     */
34
    public function create($regionId, $languageCode)
35
    {
36
        $selectedLocaleName = $this->getSelectedLocaleName($languageCode);
37
38
        return view('laravel-events-calendar::regionTranslations.create')
39
                ->with('regionId', $regionId)
40
                ->with('languageCode', $languageCode)
41
                ->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\Response
49
     */
50
    public function store(Request $request)
51
    {
52
        // Validate form datas
53
        $validator = Validator::make($request->all(), [
54
                'name' => 'required',
55
            ]);
56
        if ($validator->fails()) {
57
            return back()->withErrors($validator)->withInput();
58
        }
59
60
        $regionTranslation = new RegionTranslation();
61
        $regionTranslation->region_id = $request->get('region_id');
62
        $regionTranslation->locale = $request->get('language_code');
63
64
        $regionTranslation->name = $request->get('name');
65
        $regionTranslation->slug = Str::slug($regionTranslation->name, '-');
66
67
        $regionTranslation->save();
68
69
        return redirect()->route('regions.index')
70
                        ->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 int $languageCode
88
     * @return \Illuminate\Http\Response
89
     */
90
    public function edit($regionId, $languageCode)
91
    {
92
        $regionTranslation = RegionTranslation::where('region_id', $regionId)
93
                        ->where('locale', $languageCode)
94
                        ->first();
95
96
        $selectedLocaleName = $this->getSelectedLocaleName($languageCode);
97
98
        return view('laravel-events-calendar::regionTranslations.edit', compact('regionTranslation'))
99
                    ->with('regionId', $regionId)
100
                    ->with('languageCode', $languageCode)
101
                    ->with('selectedLocaleName', $selectedLocaleName);
102
    }
103
104
    /**
105
     * Update the specified resource in storage.
106
     *
107
     * @param  \Illuminate\Http\Request  $request
108
     * @return \Illuminate\Http\Response
109
     */
110
    public function update(Request $request)
111
    {
112
113
        // Validate form datas
114
        $validator = Validator::make($request->all(), [
115
                'name' => 'required',
116
            ]);
117
        if ($validator->fails()) {
118
            return back()->withErrors($validator)->withInput();
119
        }
120
121
        $regionTranslation = RegionTranslation::where('id', $request->get('region_translation_id'));
122
123
        $region_t['name'] = $request->get('name');
0 ignored issues
show
Comprehensibility Best Practice introduced by
$region_t was never initialized. Although not strictly required by PHP, it is generally a good practice to add $region_t = array(); before regardless.
Loading history...
124
        $region_t['slug'] = Str::slug($request->get('name'), '-');
125
126
        $regionTranslation->update($region_t);
127
128
        return redirect()->route('regions.index')
129
                        ->with('success', 'Translation updated successfully');
130
    }
131
132
    /**
133
     * Remove the specified resource from storage.
134
     *
135
     * @param  \DavideCasiraghi\LaravelEventsCalendar\Models\RegionTranslation  $regionTranslation
136
     * @return \Illuminate\Http\Response
137
     */
138
    public function destroy($regionTranslationId)
139
    {
140
        $regionTranslation = RegionTranslation::find($regionTranslationId);
141
        $regionTranslation->delete();
142
143
        return redirect()->route('regions.index')
144
                        ->with('success', __('laravel-events-calendar::messages.region_translation_deleted_successfully'));
145
    }
146
}
147