MenuItemTranslationController::store()   A
last analyzed

Complexity

Conditions 2
Paths 2

Size

Total Lines 24
Code Lines 13

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 14
CRAP Score 2

Importance

Changes 1
Bugs 0 Features 1
Metric Value
eloc 13
c 1
b 0
f 1
dl 0
loc 24
ccs 14
cts 14
cp 1
rs 9.8333
cc 2
nc 2
nop 1
crap 2
1
<?php
2
3
namespace DavideCasiraghi\LaravelQuickMenus\Http\Controllers;
4
5
use DavideCasiraghi\LaravelQuickMenus\Models\MenuItemTranslation;
6
use Illuminate\Http\Request;
7
use Illuminate\Support\Str;
8
use Validator;
9
10
class MenuItemTranslationController extends Controller
11
{
12
    /* Restrict the access to this resource just to logged in users */
13 7
    public function __construct()
14
    {
15 7
        $this->middleware('admin');
16 7
    }
17
18
    /**
19
     * Show the form for creating a new resource.
20
     * @param int $menuItemId
21
     * @param string $languageCode
22
     * @param int $menuId
23
     * @return \Illuminate\Http\Response
24
     */
25 1
    public function create($menuItemId, $languageCode, $menuId)
26
    {
27 1
        $selectedLocaleName = $this->getSelectedLocaleName($languageCode);
28
29 1
        return view('laravel-quick-menus::menuItemTranslations.create')
30 1
                ->with('menuItemId', $menuItemId)
31 1
                ->with('selectedMenuId', $menuId)
32 1
                ->with('languageCode', $languageCode)
33 1
                ->with('selectedLocaleName', $selectedLocaleName);
34
    }
35
36
    // **********************************************************************
37
38
    /**
39
     * Show the form for editing the specified resource.
40
     * @param int $menuItemId
41
     * @param string $languageCode
42
     * @param int $menuId
43
     * @return \Illuminate\Http\Response
44
     */
45 1
    public function edit($menuItemId, $languageCode, $menuId)
46
    {
47 1
        $menuItemTranslation = MenuItemTranslation::where('menu_item_id', $menuItemId)
48 1
                        ->where('locale', $languageCode)
49 1
                        ->first();
50
51 1
        $selectedLocaleName = $this->getSelectedLocaleName($languageCode);
52
53 1
        return view('laravel-quick-menus::menuItemTranslations.edit', compact('menuItemTranslation'))
54 1
                    ->with('menuItemId', $menuItemId)
55 1
                    ->with('selectedMenuId', $menuId)
56 1
                    ->with('languageCode', $languageCode)
57 1
                    ->with('selectedLocaleName', $selectedLocaleName);
58
    }
59
60
    // **********************************************************************
61
62
    /**
63
     * Store a newly created resource in storage.
64
     *
65
     * @param  \Illuminate\Http\Request  $request
66
     * @return \Illuminate\Http\Response
67
     */
68 6
    public function store(Request $request)
69
    {
70
        // Validate form datas
71 6
        $validator = Validator::make($request->all(), [
72 6
            'name' => 'required',
73
        ]);
74
75 6
        if ($validator->fails()) {
76 1
            return back()->withErrors($validator)->withInput();
77
        }
78
79 5
        $menuItemTranslation = new MenuItemTranslation();
80 5
        $menuItemTranslation->menu_item_id = $request->get('menu_item_id');
81 5
        $menuItemTranslation->locale = $request->get('language_code');
82
83 5
        $menuItemTranslation->name = $request->get('name');
84 5
        $menuItemTranslation->slug = Str::slug($menuItemTranslation->name, '-');
85
86 5
        $menuItemTranslation->save();
87
88 5
        $selectedMenuId = $request->get('selected_menu_id');
89
90 5
        return redirect()->route('menuItemsIndex', ['id' => $selectedMenuId])
91 5
                        ->with('success', 'Translation created successfully.');
92
    }
93
94
    // **********************************************************************
95
96
    /**
97
     * Update the specified resource in storage.
98
     *
99
     * @param  \Illuminate\Http\Request  $request
100
     * @return \Illuminate\Http\Response
101
     */
102 2
    public function update(Request $request)
103
    {
104 2
        request()->validate([
105 2
            'name' => 'required',
106
        ]);
107
108
        //$menuItemTranslation = MenuItemTranslation::where('id', $request->get('menu_item_translation_id'));
109 1
        $menuItemTranslation = MenuItemTranslation::find($request->get('menu_item_translation_id'));
110
        //dd($menuItemTranslation);
111
112
        //dd($menuItemTranslation->id);
113 1
        $mi_t = [];
114 1
        $mi_t['name'] = $request->get('name');
115 1
        $mi_t['slug'] = Str::slug($request->get('name'), '-');
116
117 1
        $menuItemTranslation->update($mi_t);
118
119 1
        $selectedMenuId = $request->get('selected_menu_id');
120
121 1
        return redirect()->route('menuItemsIndex', ['id' => $selectedMenuId])
122 1
                        ->with('success', 'Translation updated successfully');
123
    }
124
125
    // **********************************************************************
126
127
    /**
128
     * Remove the specified resource from storage.
129
     * @param int $menuItemTranslationId
130
     * @param int $selectedMenuId
131
     * @return \Illuminate\Http\Response
132
     */
133 1
    public function destroy($menuItemTranslationId, $selectedMenuId)
134
    {
135 1
        $menuItemTranslation = MenuItemTranslation::find($menuItemTranslationId);
136 1
        $menuItemTranslation->delete();
137
138 1
        return redirect()->route('menuItemsIndex', ['id' => $selectedMenuId])
139 1
                        ->with('success', 'Translation deleted successfully');
140
    }
141
}
142