@Override
 public GameStatusResponse getResponse(GameStatusMessage message, String gameId) {
   GameController gameController = getGameController();
   GameStatusResponse gameResponse;
   try {
     gameResponse = makeMove(message, gameController);
     gameResponse.setActionStatus(OK);
   } catch (ActionNotAllowedException e) {
     gameResponse = new GameStatusResponse(gameController);
     gameResponse.setActionStatus(e.getMessage());
     log.debug("Action not allowed " + e.getMessage() + " thrown to player " + message.userId);
   }
   gameResponse.setLastAction(message);
   return gameResponse;
 }
 private GameStatusResponse makeMove(GameStatusMessage message, GameController gameController)
     throws ActionNotAllowedException {
   changeGameStateWithAction(gameController, message);
   log.debug(
       "Game "
           + message.gameId
           + " Player "
           + message.userId
           + " performs "
           + message.action
           + " (card "
           + message.cardId
           + ")");
   GameStatusResponse gameStatusResponse = new GameStatusResponse(gameController);
   log.debug(
       "New game status: " + System.getProperty("line.separator") + gameStatusResponse.toString());
   return gameStatusResponse;
 }