Переглянути джерело

Added fail states for bad game join

Pjotir 10 місяців тому
батько
коміт
777b29a215
2 змінених файлів з 21 додано та 2 видалено
  1. 20 1
      flaskapp.py
  2. 1 1
      templates/home.html

+ 20 - 1
flaskapp.py

@@ -64,7 +64,26 @@ def new_game():
 
 
 @app.route("/game/<game_id>")
-def game(game_id):
[email protected]("/game")
+def game(game_id=None):
+    try:
+        name = request.args["playerName"]
+        if not name or not game_id:
+            raise KeyError
+
+        if game_id not in [game.id for game in app.games]:
+            flash("Game not found")
+            return redirect(url_for("home"))
+    except KeyError as e:
+        app.logger.error(e)
+        app.logger.error("Failed, missing args")
+        flash("Failed to join game, bad game code or player name")
+        return redirect(url_for("home"))
+    except Exception as e:
+        app.logger.error(e)
+        app.logger.error("Failed, bad args")
+        return abort(400)
+
     return render_template("game.html", game_id=game_id)
 
 

+ 1 - 1
templates/home.html

@@ -59,7 +59,7 @@
         </div>
     </form>
     <hr>
-    <form action="/joingame">
+    <form action="/game">
         <div class="row">
             <div class="one-third column">
                 <input type="text"