diff --git a/GamePedia/index.php b/GamePedia/index.php index 441dfb7faced7bb23399978457c45f3b5127643d..63bd77caa17e8d619e109d6272e886a6f0ec4a09 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 89f8549eccbd3c24318f0b0f1eb1f5758565bf34..9b00b0d83eef9c9c06ac495614168686497b6a13 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 4ea410f129076205d72042c365bc73b57efe1d2f..e4080f1f79df668946d89104b4e3e45125e523e2 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 1e313fb7fa047b2ef11683f9139723640c524566..affabd42c55ea7e094a86484ab5ced359f72f198 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 ddc463d433506f971fb705e75be5f3e2f2267aeb..120feec11365b49662098cc65c71e767d1cabc91 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 d8715642b91917da4510e66727e083b83209f372..8b95670245f6f827b84a6b4f1fba0bd047cfa348 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