From 4229a9e76afec25a865727364d997e016888ee59 Mon Sep 17 00:00:00 2001 From: SASSU Thomas <thomas.sassu5@etu.univ-lorraine.fr> Date: Mon, 23 Mar 2020 20:18:15 +0100 Subject: [PATCH] Partie 5 --- GamePedia/index.php | 9 ++- GamePedia/php/script_TD4a.php | 73 +++++++++----------- GamePedia/src/controleurs/ControleurGame.php | 7 ++ GamePedia/src/modeles/Comment.php | 2 +- GamePedia/src/modeles/Game.php | 2 +- GamePedia/src/vues/VueGame.php | 15 +++- 6 files changed, 64 insertions(+), 44 deletions(-) diff --git a/GamePedia/index.php b/GamePedia/index.php index 441dfb7..63bd77c 100644 --- a/GamePedia/index.php +++ b/GamePedia/index.php @@ -22,14 +22,19 @@ $app->get('/',function () use ($app) { $app->response->headers->set('Content-Type', 'text/html'); }); +// Affiche un jeu au fromat JSON $app->get('/api/games/:id',function ($id) { $c = new ControleurGame(); $c->getGame($id); }); - +// Affiche tous les jeu paginé au format JSON $app->get('/api/games/',function () { $c = new ControleurGame(); $c->getGames(); })->name('getGame'); - +// Affiche les commentaires d'un jeu +$app->get('/api/games/:id/comments',function ($id) { + $c = new ControleurGame(); + $c->getGameComments($id); +}); $app->run(); \ No newline at end of file diff --git a/GamePedia/php/script_TD4a.php b/GamePedia/php/script_TD4a.php index 89f8549..9b00b0d 100644 --- a/GamePedia/php/script_TD4a.php +++ b/GamePedia/php/script_TD4a.php @@ -6,7 +6,6 @@ use gp\modeles\Comment; use gp\modeles\Game; use gp\modeles\User; use Illuminate\Database\Capsule\Manager as DB; -use Faker; $db = new DB(); $db->addConnection(parse_ini_file('../conf/conf.ini')); @@ -16,47 +15,43 @@ $db->bootEloquent(); // use the factory to create a Faker\Generator instance $faker = Faker\Factory::create(); -if(User::first()== null){ - //all users - for($i=0; $i<2; $i++) { - $insert = false; - while (!$insert) { - try { - //fake data - $tmp = explode(' ', $faker->name); - $user['fname'] = $tmp[0]; - $user['name'] = $tmp[1]; - $user['address'] = $faker->address; - $user['email'] = $faker->email; - $user['tel'] = $faker->e164PhoneNumber; - $user['date'] = $faker->date('Y-m-d', '2005-01-01'); - //insert - User::create($user['fname'], $user['name'], $user['email'], $user['address'], $user['tel'], $user['date']); - $insert = true; - } catch (PDOException $Exception) { - echo("Duplicate data : recreating new fake"); - } +//all users +for($i=0; $i<2; $i++) { + $insert = false; + while (!$insert) { + try { + //fake data + $tmp = explode(' ', $faker->name); + $user['fname'] = $tmp[0]; + $user['name'] = $tmp[1]; + $user['address'] = $faker->address; + $user['email'] = $faker->email; + $user['tel'] = $faker->e164PhoneNumber; + $user['date'] = $faker->date('Y-m-d', '2005-01-01'); + //insert + User::create($user['fname'], $user['name'], $user['email'], $user['address'], $user['tel'], $user['date']); + $insert = true; + } catch (PDOException $Exception) { + echo("Duplicate data : recreating new fake"); } } } -if(Comment::first()== null){ - //all comments - $users = User::get(); - $game = Game::where('id', '=', 12342)->first(); - foreach($users as $user){ - $insert = false; - while (!$insert) { - try { - //fake data - $title = $faker->text(50); - $content = $faker->text(200); - $date = $faker->date('Y-m-d', '2015-02-01'); - //insert comment - Comment::create($game->id, $user->email, $title, $content, $date); - $insert = true; - } catch (PDOException $Exception) { - echo("Duplicate data : recreating new fake"); - } +//all comments +$users = User::get(); +$game = Game::where('id', '=', 12342)->first(); +foreach($users as $user){ + $insert = false; + while (!$insert) { + try { + //fake data + $title = $faker->text(50); + $content = $faker->text(200); + $date = $faker->date('Y-m-d', '2015-02-01'); + //insert comment + Comment::create($game->id, $user->email, $title, $content, $date); + $insert = true; + } catch (PDOException $Exception) { + echo("Duplicate data : recreating new fake"); } } } \ No newline at end of file diff --git a/GamePedia/src/controleurs/ControleurGame.php b/GamePedia/src/controleurs/ControleurGame.php index 4ea410f..e4080f1 100644 --- a/GamePedia/src/controleurs/ControleurGame.php +++ b/GamePedia/src/controleurs/ControleurGame.php @@ -29,4 +29,11 @@ class ControleurGame $v = new VueGame(json_encode($results)); $v->render('getGames'); } + + public function getGameComments($id){ + $game = Game::where('id', '=', $id)->first(); + $comments = $game->comments()->get(); + $v = new VueGame(json_encode($comments)); + $v->render('getComments'); + } } \ No newline at end of file diff --git a/GamePedia/src/modeles/Comment.php b/GamePedia/src/modeles/Comment.php index 1e313fb..affabd4 100644 --- a/GamePedia/src/modeles/Comment.php +++ b/GamePedia/src/modeles/Comment.php @@ -20,7 +20,7 @@ class Comment extends \Illuminate\Database\Eloquent\Model } function game(){ - return $this->BelongsTo('gp\modeles\Game','id_game'); + return $this->BelongsTo('gp\modeles\Game','id'); } function user(){ return $this->BelongsTo('gp\modeles\User', 'email'); diff --git a/GamePedia/src/modeles/Game.php b/GamePedia/src/modeles/Game.php index ddc463d..120feec 100644 --- a/GamePedia/src/modeles/Game.php +++ b/GamePedia/src/modeles/Game.php @@ -32,6 +32,6 @@ class Game extends \Illuminate\Database\Eloquent\Model return $this->belongsToMany('gp\modeles\Games', 'similar_games','game1'); } public function comments(){ - return $this->belongsToMany('gp\modeles\comment', 'game2comment','game_id'); + return $this->hasMany('gp\modeles\Comment','id_game'); } } \ No newline at end of file diff --git a/GamePedia/src/vues/VueGame.php b/GamePedia/src/vues/VueGame.php index d871564..8b95670 100644 --- a/GamePedia/src/vues/VueGame.php +++ b/GamePedia/src/vues/VueGame.php @@ -18,7 +18,12 @@ class VueGame // break; // } // case 'getGames' : { -// $json = $this->afficher_getGame(); +// $json = $this->afficher_getGames(); +// $cd = ''; +// break; +// } +// case 'getComments' : { +// $json = $this->afficher_getComments(); // $cd = ''; // break; // } @@ -29,4 +34,12 @@ class VueGame // private function afficher_getGame() { // return $this->tab; // } +// +// private function afficher_getGames() { +// return $this->tab; +// } +// +// private function afficher_getComments() { +// return $this->tab; +// } } \ No newline at end of file -- GitLab