JumbotronImageTranslationController::edit()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 12
Code Lines 8

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 9
CRAP Score 1

Importance

Changes 1
Bugs 1 Features 0
Metric Value
cc 1
eloc 8
c 1
b 1
f 0
nc 1
nop 2
dl 0
loc 12
ccs 9
cts 9
cp 1
crap 1
rs 10
1
<?php
2
3
namespace DavideCasiraghi\LaravelJumbotronImages\Http\Controllers;
4
5
use DavideCasiraghi\LaravelJumbotronImages\Models\JumbotronImageTranslation;
6
use Illuminate\Http\Request;
7
use Mcamara\LaravelLocalization\Facades\LaravelLocalization;
8
use Validator;
9
10
class JumbotronImageTranslationController
11
{
12
    /***************************************************************************/
13
14
    /**
15
     * Show the form for creating a new resource.
16
     * @param int $jumbotronImageId
17
     * @param string $languageCode
18
     * @return \Illuminate\Http\Response
19
     */
20 1
    public function create($jumbotronImageId, $languageCode)
21
    {
22 1
        $selectedLocaleName = $this->getSelectedLocaleName($languageCode);
23
24 1
        return view('laravel-jumbotron-images::jumbotronImagesTranslations.create')
25 1
                ->with('jumbotronImageId', $jumbotronImageId)
26 1
                ->with('languageCode', $languageCode)
27 1
                ->with('selectedLocaleName', $selectedLocaleName);
28
    }
29
30
    /***************************************************************************/
31
32
    /**
33
     * Show the form for editing the specified resource.
34
     *
35
     * @param int $jumbotronImageTranslationId
36
     * @param string $languageCode
37
     * @return \Illuminate\Http\Response
38
     */
39 1
    public function edit($jumbotronImageId, $languageCode)
40
    {
41 1
        $jumbotronImageTranslation = JumbotronImageTranslation::where('jumbotron_image_id', $jumbotronImageId)
42 1
                        ->where('locale', $languageCode)
43 1
                        ->first();
44
45 1
        $selectedLocaleName = $this->getSelectedLocaleName($languageCode);
46
47 1
        return view('laravel-jumbotron-images::jumbotronImagesTranslations.edit', compact('jumbotronImageTranslation'))
48 1
                    ->with('jumbotronImageId', $jumbotronImageId)
49 1
                    ->with('languageCode', $languageCode)
50 1
                    ->with('selectedLocaleName', $selectedLocaleName);
51
    }
52
53
    /***************************************************************************/
54
55
    /**
56
     * Store a newly created resource in storage.
57
     *
58
     * @param  \Illuminate\Http\Request  $request
59
     * @return \Illuminate\Http\Response
60
     */
61 1
    public function store(Request $request)
62
    {
63
64
        // Validate form datas
65
        /*$validator = Validator::make($request->all(), [
66
                'text' => 'required',
67
            ]);
68
        if ($validator->fails()) {
69
            return back()->withErrors($validator)->withInput();
70
        }*/
71
72 1
        $jumbotronImageTranslation = new JumbotronImageTranslation();
73
74 1
        $this->saveOnDb($request, $jumbotronImageTranslation, 'save');
75
76 1
        return redirect()->route('jumbotron-images.index')
77 1
                            ->with('success', 'Jumbotron Image translation added succesfully');
78
    }
79
80
    /***************************************************************************/
81
82
    /**
83
     * Update the specified resource in storage.
84
     *
85
     * @param  \Illuminate\Http\Request  $request
86
     * @param  int  $jumbotronImageTranslationId
87
     * @return \Illuminate\Http\Response
88
     */
89 1
    public function update(Request $request, $jumbotronImageTranslationId)
90
    {
91
        /*request()->validate([
92
            'text' => 'required',
93
        ]);*/
94
95 1
        $jumbotronImageTranslation = JumbotronImageTranslation::find($jumbotronImageTranslationId);
96
        //dd($jumbotronImageTranslation);
97 1
        $this->saveOnDb($request, $jumbotronImageTranslation, 'update');
98
99 1
        return redirect()->route('jumbotron-images.index')
100 1
                            ->with('success', 'Jumbotron Image translation added succesfully');
101
    }
102
103
    /***************************************************************************/
104
105
    /**
106
     * Save the record on DB.
107
     * @param  \Illuminate\Http\Request  $request
108
     * @param  \DavideCasiraghi\LaravelJumbotronImages\Models\JumbotronImageTranslation  $jumbotronImageTranslation
109
     * @return void
110
     */
111 2
    public function saveOnDb($request, $jumbotronImageTranslation, $saveOrUpdate)
112
    {
113 2
        $jumbotronImageTranslation->title = $request->get('title');
114 2
        $jumbotronImageTranslation->body = $request->get('body');
115 2
        $jumbotronImageTranslation->button_text = $request->get('button_text');
116
117 2
        switch ($saveOrUpdate) {
118 2
            case 'save':
119 1
                $jumbotronImageTranslation->jumbotron_image_id = $request->get('jumbotron_image_id');
120 1
                $jumbotronImageTranslation->locale = $request->get('language_code');
121 1
                $jumbotronImageTranslation->save();
122 1
                break;
123 1
            case 'update':
124 1
                $jumbotronImageTranslation->update();
125 1
                break;
126
        }
127 2
    }
128
129
    /***************************************************************************/
130
131
    /**
132
     * Get the language name from language code.
133
     *
134
     * @param  string $languageCode
135
     * @return string
136
     */
137 2
    public function getSelectedLocaleName($languageCode)
138
    {
139 2
        $countriesAvailableForTranslations = LaravelLocalization::getSupportedLocales();
140 2
        $ret = $countriesAvailableForTranslations[$languageCode]['name'];
141
142 2
        return $ret;
143
    }
144
145
    /***************************************************************************/
146
147
    /**
148
     * Remove the specified resource from storage.
149
     *
150
     * @param  int  $jumbotronImageTranslationId
151
     */
152 1
    public function destroy($jumbotronImageTranslationId)
153
    {
154 1
        $jumbotronImageTranslation = JumbotronImageTranslation::find($jumbotronImageTranslationId);
155 1
        $jumbotronImageTranslation->delete();
156
157 1
        return redirect()->route('jumbotron-images.index')
158 1
                            ->with('success', 'Jumbotron Image translation deleted succesfully');
159
    }
160
}
161