ColumnGroupTranslationController   A
last analyzed

Complexity

Total Complexity 10

Size/Duplication

Total Lines 138
Duplicated Lines 0 %

Test Coverage

Coverage 100%

Importance

Changes 1
Bugs 0 Features 0
Metric Value
wmc 10
eloc 46
c 1
b 0
f 0
dl 0
loc 138
ccs 52
cts 52
cp 1
rs 10

6 Methods

Rating   Name   Duplication   Size   Complexity  
A destroy() 0 7 1
A create() 0 8 1
A edit() 0 12 1
A store() 0 16 2
A saveOnDb() 0 16 3
A update() 0 17 2
1
<?php
2
3
namespace DavideCasiraghi\LaravelColumns\Http\Controllers;
4
5
use DavideCasiraghi\LaravelColumns\Models\ColumnGroupTranslation;
6
use Illuminate\Http\Request;
7
use Validator;
8
9
class ColumnGroupTranslationController extends Controller
10
{
11
    /***************************************************************************/
12
13
    /**
14
     * Show the form for creating a new resource.
15
     * @param int $columnId
16
     * @param string $languageCode
17
     * @return \Illuminate\Http\Response
18
     */
19 1
    public function create($columnGroupId, $languageCode)
20
    {
21 1
        $selectedLocaleName = $this->getSelectedLocaleName($languageCode);
22
23 1
        return view('laravel-columns::columnGroupTranslations.create')
24 1
                ->with('columnGroupId', $columnGroupId)
25 1
                ->with('languageCode', $languageCode)
26 1
                ->with('selectedLocaleName', $selectedLocaleName);
27
    }
28
29
    /***************************************************************************/
30
31
    /**
32
     * Show the form for editing the specified resource.
33
     *
34
     * @param int $columnTranslationId
35
     * @param string $languageCode
36
     * @return \Illuminate\Http\Response
37
     */
38 1
    public function edit($columnGroupId, $languageCode)
39
    {
40 1
        $columnGroupTranslation = ColumnGroupTranslation::where('column_group_id', $columnGroupId)
41 1
                        ->where('locale', $languageCode)
42 1
                        ->first();
43
44 1
        $selectedLocaleName = $this->getSelectedLocaleName($languageCode);
45
46 1
        return view('laravel-columns::columnGroupTranslations.edit', compact('columnGroupTranslation'))
47 1
                    ->with('columnGroupId', $columnGroupId)
48 1
                    ->with('languageCode', $languageCode)
49 1
                    ->with('selectedLocaleName', $selectedLocaleName);
50
    }
51
52
    /***************************************************************************/
53
54
    /**
55
     * Store a newly created resource in storage.
56
     *
57
     * @param  \Illuminate\Http\Request  $request
58
     * @return \Illuminate\Http\Response
59
     */
60 6
    public function store(Request $request)
61
    {
62
        // Validate form datas
63 6
        $validator = Validator::make($request->all(), [
64 6
            'title' => 'required',
65
        ]);
66 6
        if ($validator->fails()) {
67 1
            return back()->withErrors($validator)->withInput();
68
        }
69
70 5
        $columnGroupTranslation = new ColumnGroupTranslation();
71
72 5
        $this->saveOnDb($request, $columnGroupTranslation, 'save');
73
74 5
        return redirect()->route('columnGroups.index')
75 5
                            ->with('success', 'Column group translation added succesfully');
76
    }
77
78
    /***************************************************************************/
79
80
    /**
81
     * Update the specified resource in storage.
82
     *
83
     * @param  \Illuminate\Http\Request  $request
84
     * @param  int  $columnTranslationId
85
     * @return \Illuminate\Http\Response
86
     */
87 2
    public function update(Request $request)
88
    {
89
        // Validate form datas
90 2
        $validator = Validator::make($request->all(), [
91 2
            'title' => 'required',
92
        ]);
93 2
        if ($validator->fails()) {
94 1
            return back()->withErrors($validator)->withInput();
95
        }
96
97 1
        $columnGroupTranslation = ColumnGroupTranslation::find($request->get('column_group_translation_id'));
98
99
        //dd($columnGroupTranslation);
100 1
        $this->saveOnDb($request, $columnGroupTranslation, 'update');
101
102 1
        return redirect()->route('columnGroups.index')
103 1
                            ->with('success', 'Column group translation added succesfully');
104
    }
105
106
    /***************************************************************************/
107
108
    /**
109
     * Save the record on DB.
110
     * @param  \Illuminate\Http\Request  $request
111
     * @param  \DavideCasiraghi\LaravelColumns\Models\ColumnGroupTranslation  $columnGroupTranslation
112
     * @return void
113
     */
114 5
    public function saveOnDb($request, $columnGroupTranslation, $saveOrUpdate)
115
    {
116
        //dd($columnTranslation);
117 5
        $columnGroupTranslation->title = $request->get('title');
118 5
        $columnGroupTranslation->description = $request->get('description');
119 5
        $columnGroupTranslation->button_text = $request->get('button_text');
120
121 5
        switch ($saveOrUpdate) {
122 5
            case 'save':
123 5
                $columnGroupTranslation->column_group_id = $request->get('column_group_id');
124 5
                $columnGroupTranslation->locale = $request->get('language_code');
125 5
                $columnGroupTranslation->save();
126 5
                break;
127 1
            case 'update':
128 1
                $columnGroupTranslation->update();
129 1
                break;
130
        }
131 5
    }
132
133
    /***************************************************************************/
134
135
    /**
136
     * Remove the specified resource from storage.
137
     *
138
     * @param  int  $columnGroupTranslationId
139
     */
140 1
    public function destroy($columnGroupTranslationId)
141
    {
142 1
        $columnGroupTranslation = ColumnGroupTranslation::find($columnGroupTranslationId);
143 1
        $columnGroupTranslation->delete();
144
145 1
        return redirect()->route('columnGroups.index')
146 1
                            ->with('success', 'Column group translation deleted succesfully');
147
    }
148
}
149