Example #1
0
 /**
  * Enregistre un nouveau paris
  *
  * @return Response
  */
 public function store()
 {
     $user = User::getUserWithToken($_GET['token']);
     $input = Input::all();
     $input['user_id'] = $user->id;
     $validator = Validator::make($input, Bet::$rules, BaseController::$messages);
     if ($validator->fails()) {
         return Response::json(array('success' => false, 'payload' => array(), 'error' => $this->errorsArraytoString($validator->messages())), 400);
     }
     //On vérifie si la date du match n'est pas dépassé
     if (new DateTime() > new DateTime(Game::find($input['game_id'])->date)) {
         return Response::json(array('success' => false, 'payload' => array(), 'error' => "Le date du match est dépassé !"), 400);
     }
     $bet = Bet::whereRaw('user_id = ? && game_id = ?', array($input['user_id'], $input['game_id']))->first();
     //Si un paris sur le même match pour cet utilisateur existe, erreur envoyée.
     if ($bet) {
         return Response::json(array('success' => false, 'payload' => array(), 'error' => "Un paris existe déjà sur ce match !"), 400);
     }
     //On vérifie si la somme misé est disponible
     if ($input['points'] > $user->points) {
         return Response::json(array('success' => false, 'payload' => array(), 'error' => "Vous avez miser plus de points que vous en avez !"), 400);
     }
     $game = Game::find($input['game_id']);
     //On vérifie si le winner est bien une équipe du match
     if ($input['winner_id'] != $game->team1_id && $input['winner_id'] != $game->team2_id) {
         return Response::json(array('success' => false, 'payload' => array(), 'error' => "Veuillez mettre une équipe du match !"), 400);
     }
     $bet = Bet::create($input);
     Transaction::addTransaction($input['user_id'], $bet->id, $input['points'], 'bet');
     return Response::json(array('success' => true, 'payload' => $bet->toArray(), 'message' => 'Pari enregistré (' . $bet->points . ' points) sur : ' . $game->team1->name . ' (' . $bet->team1_goals . ') - (' . $bet->team2_goals . ') ' . $game->team2->name));
 }
 /**
  * Renvoi une transaction
  *
  * @return Response
  */
 public function show($id)
 {
     $user = User::getUserWithToken($_GET['token']);
     return Response::json(array('success' => true, 'payload' => Transaction::whereRaw('user_id = ? && id = ?', array($user->id), $id)->toArray()));
 }
Example #3
0
 public function getUserHasBetAttribute()
 {
     $user = User::getUserWithToken($_GET['token']);
     $bet = Bet::whereRaw('game_id = ? && user_id = ?', array($this->id, $user->id))->first();
     if ($bet) {
         return true;
     } else {
         return false;
     }
 }