Completed
Push — master ( 5c637a...214bce )
by Julien
03:47
created

MoviesController::delete()   D

Complexity

Conditions 2
Paths 2

Size

Total Lines 11
Code Lines 6

Duplication

Lines 1
Ratio 9.09 %

Importance

Changes 4
Bugs 0 Features 3
Metric Value
c 4
b 0
f 3
dl 1
loc 11
rs 4.8293
cc 2
eloc 6
nc 2
nop 1
1
<?php
2
namespace App\Http\Controllers;
3
4
use App\Http\Models\Actors;
5
use App\Http\Models\Categories;
6
use App\Http\Models\Directors;
7
use App\Http\Models\Movies;
8
use App\Http\Requests\MoviesRequest;
9
use Illuminate\Http\Request;
10
use Illuminate\Support\Facades\DB;
11
use Illuminate\Support\Facades\Redirect;
12
use Illuminate\Support\Facades\Session;
13
14
/**
15
 * Class MainController
16
 * @package App\Http\Controllers
17
 * Sufficé par le mot clef Controller
18
 * et doit hérité de la super classe Controller
19
 */
20
class MoviesController extends Controller{
21
22
    /**
23
     * Page Acceuil
24
     */
25
    public function index(){
26
        $movies = Movies::all();
27
28
        return view('Movies/index',[
29
                'movies' => $movies,
30
            ]
31
        );
32
    }
33
34
    /**
35
     * Page Create
36
     */
37
    public function create(){
38
39
        $categories = Categories::all();
40
        $actors = Actors::all();
41
        $directors = Directors::all();
42
43
44
        return view('Movies/create',
45
        [
46
            'categories' => $categories,
47
            'actors' => $actors,
48
            'directors' => $directors,
49
        ]);
50
51
    }
52
53
54
    /**
55
     * Page Read
56
     */
57
    public function read($id){
58
59
        return view('Movies/read');
60
    }
61
    /**
62
     * Page Read
63
     */
64
    public function edit($id){
65
66
        $categories = Categories::all();
67
        $actors = Actors::all();
68
        $directors = Directors::all();
69
70
        $movie = Movies::find($id);
71
        return view('Movies/edit', [
72
            'movie' => $movie,
73
            'categories' => $categories,
74
            'actors' => $actors,
75
            'directors' => $directors,
76
        ]);
77
    }
78
79
80
    /**
81
     * Action qui va me permettre d'activer un film
82
     * @param $id
83
     */
84 View Code Duplication
    public function activate($id){
0 ignored issues
show
Duplication introduced by
This method seems to be duplicated in your project.

Duplicated code is one of the most pungent code smells. If you need to duplicate the same code in three or more different places, we strongly encourage you to look into extracting the code into a single class or operation.

You can also find more detailed suggestions in the “Code” section of your repository.

Loading history...
85
        $movie = Movies::find($id);
86
87
        if($movie->visible == 0){
88
            $movie->visible = 1;
89
            Session::flash("success","Le film {$movie->title} a bien été activé");
90
91
        }
92
        else{
93
            $movie->visible = 0;
94
            Session::flash("success","Le film {$movie->title} a bien été desactivé");
95
        }
96
97
        $movie->save();
98
99
        return Redirect::route('movies_index');
100
    }
101
102
103
    /**
104
     * Action qui va me permettre de metter en avant un film
105
     * @param $id
106
     */
107 View Code Duplication
    public function cover($id){
0 ignored issues
show
Duplication introduced by
This method seems to be duplicated in your project.

Duplicated code is one of the most pungent code smells. If you need to duplicate the same code in three or more different places, we strongly encourage you to look into extracting the code into a single class or operation.

You can also find more detailed suggestions in the “Code” section of your repository.

Loading history...
108
        $movie = Movies::find($id);
109
110
        if($movie->cover == 0){
111
            $movie->cover = 1;
112
            Session::flash("success","Le film {$movie->title} a bien été mis en avant");
113
114
        }
115
        else{
116
            $movie->cover = 0;
117
            Session::flash("danger","Le film {$movie->title} a bien été retiré de l'avant");
118
        }
119
120
        $movie->save();
121
122
        return Redirect::route('movies_index');
123
    }
124
125
126
127
    /**
128
     * Suppresion
129
     */
130
    public function delete($id){
131
132
        $movie = Movies::find($id);
133
134
        if($movie){
135
            Session::flash('success', "Le film {$movie->title} a bien été supprimé");
136
            $movie->delete();
137
        }
138
139
        return Redirect::route('movies_index');
140
    }
141
142
143
    /**
144
     * Fonction de like des films, enregistré en session
145
     * Session : mécanisme de stockage temporelle
146
     * BDD: mécanisme de stockage atemporelle
147
     * @param Request $request
0 ignored issues
show
Bug introduced by
There is no parameter named $request. Was it maybe removed?

This check looks for PHPDoc comments describing methods or function parameters that do not exist on the corresponding method or function.

Consider the following example. The parameter $italy is not defined by the method finale(...).

/**
 * @param array $germany
 * @param array $island
 * @param array $italy
 */
function finale($germany, $island) {
    return "2:1";
}

The most likely cause is that the parameter was removed, but the annotation was not.

Loading history...
148
     */
149
    public function like($id, $action)
150
    {
151
        $movie = Movies::find($id);
152
153
        $likes = session("likes", []);
154
155
        // si l'action est "like"
156
        if ($action == "like") {
157
158
            // J'ajoute mon movie dans le tableaux des likes en session
159
            $likes[$id] = $movie->id;
160
            Session::flash('danger', "Le film {$movie->title} a bien été liké");
161
162
        }else{
163
164
            // je supprime le like dans le tableaux des likes
165
            // unset() supprimer un element dans un tableau en PHP
166
            unset($likes[$id]);
167
168
            Session::flash('success', "Le film {$movie->title} a bien été disliké");
169
        }
170
171
172
        //j'enregistre en session mon nouveau tableaux des likes
173
        Session::put("likes", $likes);
174
175
        // une redirection avec message flash
176
        return Redirect::route('movies_index');
177
178
    }
179
180
181
182
    /**
183
     * Store database
184
     */
185
    public function store(MoviesRequest $request){
186
187
        $dateoutput =  \DateTime::createFromFormat('d/m/Y',$request->date_release);
188
        $movie = new Movies();
189
        $movie->type = $request->type;
190
        $movie->title = $request->title;
191
        $movie->synopsis = $request->synopsis;
192
        $movie->description = $request->description;
193
        $movie->trailer = $request->trailer;
194
        $movie->date_release = $dateoutput;
195
        $movie->visible = $request->visible;
196
        $movie->cover = $request->cover;
197
        $movie->languages = $request->lang;
198
        $movie->categories_id = $request->categories_id;
199
        $movie->note_presse = $request->note_presse;
200
        $movie->distributeur = $request->distributeur;
201
202
        $filename = "";
203
204
        if($request->hasFile('image')) {
205
            $file = $request->file('image');
206
            $filename = $file->getClientOriginalName(); // Récupère le nom original du fichier
207
            $destinationPath = public_path() . '/uploads/movies'; // Indique où stocker le fichier
208
            $file->move($destinationPath, $filename); // Déplace le fichier
209
        }
210
211
        $movie->image = asset("uploads/movies/". $filename);
212
        $movie->save();
213
214
        $actors = $request->actors;
215
        if (isset($actors)) {
216
            foreach ($actors as $actor) {
217
                DB::table('actors_movies')
218
                    ->insert([
219
                        ['movies_id' => $movie->id, 'actors_id' => $actor]
220
                    ]);
221
            }
222
        }
223
224
        $directors = $request->directors;
225
        if (isset($directors)) {
226
            foreach ($directors as $director) {
227
                DB::table('directors_movies')
228
                    ->insert([
229
                        ['movies_id' => $movie->id, 'directors_id' => $director]
230
                    ]);
231
            }
232
        }
233
234
235
        Session::flash('success', "Le film {$movie->title} a été enregistré");
236
        return Redirect::route('movies_index');
237
238
    }
239
240
241
}
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260