diff --git a/.gitignore b/.gitignore index 7fe978f..d870e73 100644 --- a/.gitignore +++ b/.gitignore @@ -17,3 +17,6 @@ yarn-error.log /.fleet /.idea /.vscode +app/Http/Controllers/TestController.php +resources/views/test.blade.php + diff --git a/app/Models/Api.php b/app/Models/Api.php index 8b29f55..bc61cb8 100644 --- a/app/Models/Api.php +++ b/app/Models/Api.php @@ -14,6 +14,7 @@ public static function getFilmDetails($id) { $apiKey = env('API_KEY'); $url = env('API_URL'); + $url_image = env('API_IMAGE_URL'); $response = Http::withHeaders([ 'Authorization' => $apiKey, @@ -22,12 +23,20 @@ public static function getFilmDetails($id) $jsonData = json_decode($response); if ($jsonData) { - $film = new Film(); + $film = Film::where('id', $jsonData->id)->first(); - $film->id = $jsonData->id; + if ($film === null) { + // Si le film n'existe pas, ajoutez-le à la base de données + $film = new Film(); + $film->id = $jsonData->id; + } + + // Mettez à jour les propriétés du film avec les nouvelles données $film->nom = $jsonData->title; $film->date_sortie = $jsonData->release_date; - $film->urlImage = $jsonData->poster_path; + $film->urlImage = $url_image . $jsonData->poster_path; + + $film->save(); return $film; } @@ -39,6 +48,7 @@ public static function getSerieDetails($id) { $apiKey = env('API_KEY'); $url = env('API_URL'); + $url_image = env('API_IMAGE_URL'); $response = Http::withHeaders([ 'Authorization' => $apiKey, @@ -47,12 +57,20 @@ public static function getSerieDetails($id) $jsonData = json_decode($response); if ($jsonData) { - $serie = new Serie(); + $serie = Serie::where('id', $jsonData->id)->first(); - $serie->id = $jsonData->id; + if ($serie === null) { + // Si la serie n'existe pas, ajoutez-le à la base de données + $serie = new Serie(); + $serie->id = $jsonData->id; + } + + // Mettez à jour les propriétés du film avec les nouvelles données $serie->nom = $jsonData->name; $serie->date_sortie = $jsonData->first_air_date; - $serie->urlImage = $jsonData->poster_path; + $serie->urlImage = $url_image . $jsonData->poster_path; + + $serie->save(); return $serie; } diff --git a/database/seeders/DatabaseSeeder.php b/database/seeders/DatabaseSeeder.php index a9f4519..9fcd339 100644 --- a/database/seeders/DatabaseSeeder.php +++ b/database/seeders/DatabaseSeeder.php @@ -12,11 +12,12 @@ class DatabaseSeeder extends Seeder */ public function run(): void { - // \App\Models\User::factory(10)->create(); - // \App\Models\User::factory()->create([ - // 'name' => 'Test User', - // 'email' => 'test@example.com', - // ]); + $this->call(UsersTableSeeder::class); + $this->call(FilmsTableSeeder::class); + $this->call(SeriesTableSeeder::class); + $this->call(ListesTableSeeder::class); + $this->call(SerieListeTableSeeder::class); + $this->call(FilmListeTableSeeder::class); } } diff --git a/database/seeders/FilmListeTableSeeder.php b/database/seeders/FilmListeTableSeeder.php new file mode 100644 index 0000000..6af42d5 --- /dev/null +++ b/database/seeders/FilmListeTableSeeder.php @@ -0,0 +1,46 @@ + 1, + 'film_id' => 1, + ]); + + FilmListe::create([ + 'liste_id' => 1, + 'film_id' => 2, + ]); + + FilmListe::create([ + 'liste_id' => 2, + 'film_id' => 3, + ]); + + FilmListe::create([ + 'liste_id' => 3, + 'film_id' => 1, + ]); + + FilmListe::create([ + 'liste_id' => 3, + 'film_id' => 2, + ]); + + FilmListe::create([ + 'liste_id' => 3, + 'film_id' => 3, + ]); + } +} diff --git a/database/seeders/FilmsTableSeeder.php b/database/seeders/FilmsTableSeeder.php new file mode 100644 index 0000000..9c7c81e --- /dev/null +++ b/database/seeders/FilmsTableSeeder.php @@ -0,0 +1,40 @@ + 'Film trop cool', + 'date_sortie' => '2023-10-08', + 'urlImage' => 'https://picsum.photos/200/300', + 'created_at' => '2023-10-17 14:34:43', + 'updated_at' => '2023-10-18 14:34:43', + ]); + + Film::create([ + 'nom' => 'Film assez bien', + 'date_sortie' => '2023-10-08', + 'urlImage' => 'https://picsum.photos/200/300', + 'created_at' => '2023-10-17 14:34:43', + 'updated_at' => '2023-10-18 14:34:43', + ]); + + Film::create([ + 'nom' => 'Film bof', + 'date_sortie' => '2023-10-08', + 'urlImage' => 'https://picsum.photos/200/300', + 'created_at' => '2023-10-17 14:34:43', + 'updated_at' => '2023-10-18 14:34:43', + ]); + } +} diff --git a/database/seeders/ListesTableSeeder.php b/database/seeders/ListesTableSeeder.php new file mode 100644 index 0000000..017b149 --- /dev/null +++ b/database/seeders/ListesTableSeeder.php @@ -0,0 +1,34 @@ + 'SuperListe', + 'urlImage' => 'https://picsum.photos/200', + 'user_id' => 1, + ]); + + Liste::create([ + 'nom' => 'Franchement nul', + 'urlImage' => 'https://picsum.photos/200', + 'user_id' => 1, + ]); + + Liste::create([ + 'nom' => 'A regarder', + 'urlImage' => 'https://picsum.photos/200', + 'user_id' => 2, + ]); + } +} diff --git a/database/seeders/SerieListeTableSeeder.php b/database/seeders/SerieListeTableSeeder.php new file mode 100644 index 0000000..7807eb2 --- /dev/null +++ b/database/seeders/SerieListeTableSeeder.php @@ -0,0 +1,46 @@ + 1, + 'serie_id' => 1, + ]); + + SerieListe::create([ + 'liste_id' => 2, + 'serie_id' => 2, + ]); + + SerieListe::create([ + 'liste_id' => 2, + 'serie_id' => 3, + ]); + + SerieListe::create([ + 'liste_id' => 3, + 'serie_id' => 1, + ]); + + SerieListe::create([ + 'liste_id' => 3, + 'serie_id' => 2, + ]); + + SerieListe::create([ + 'liste_id' => 3, + 'serie_id' => 3, + ]); + } +} diff --git a/database/seeders/SeriesTableSeeder.php b/database/seeders/SeriesTableSeeder.php new file mode 100644 index 0000000..0748aff --- /dev/null +++ b/database/seeders/SeriesTableSeeder.php @@ -0,0 +1,40 @@ + 'Serie sympa', + 'date_sortie' => '2023-10-04', + 'urlImage' => 'https://picsum.photos/200/300', + 'created_at' => '2023-10-09 14:38:20', + 'updated_at' => '2023-10-11 14:38:20', + ]); + + Serie::create([ + 'nom' => 'Serie machin', + 'date_sortie' => '2023-10-04', + 'urlImage' => 'https://picsum.photos/200/300', + 'created_at' => '2023-10-09 14:38:20', + 'updated_at' => '2023-10-11 14:38:20', + ]); + + Serie::create([ + 'nom' => 'Serie truc', + 'date_sortie' => '2023-10-04', + 'urlImage' => 'https://picsum.photos/200/300', + 'created_at' => '2023-10-09 14:38:20', + 'updated_at' => '2023-10-11 14:38:20', + ]); + } +} diff --git a/database/seeders/UsersTableSeeder.php b/database/seeders/UsersTableSeeder.php new file mode 100644 index 0000000..6ddbf85 --- /dev/null +++ b/database/seeders/UsersTableSeeder.php @@ -0,0 +1,38 @@ + 'Admini', + 'email' => 'admini@strator.ch', + 'password' => bcrypt('admin1234'), + 'created_at' => '2023-10-30 16:57:38', + 'updated_at' => '2023-10-30 16:57:38', + 'firstname' => 'Admini', + 'lastname' => 'Strator', + 'username' => 'admin', + ]); + + User::create([ + 'name' => 'Utili', + 'email' => 'utili@sateur.ch', + 'password' => bcrypt('user1234'), + 'created_at' => '2023-10-30 17:00:23', + 'updated_at' => '2023-10-30 17:00:23', + 'firstname' => 'Utili', + 'lastname' => 'Sateur', + 'username' => 'user', + ]); + } +} diff --git a/resources/views/films/details.blade.php b/resources/views/films/details.blade.php new file mode 100644 index 0000000..fd318b6 --- /dev/null +++ b/resources/views/films/details.blade.php @@ -0,0 +1,19 @@ +@extends("layout.app") + +@section("content") +
+ {{$film->date_sortie}} +
++ {{$serie->date_sortie}} +
+