diff --git a/flaskr/templates/courses.html b/flaskr/templates/courses.html
index e87e969..337fb91 100644
--- a/flaskr/templates/courses.html
+++ b/flaskr/templates/courses.html
@@ -17,9 +17,9 @@ table, tr, td {
{% for item in courses %}
- | {{item[0]}} |
- {{item[1]}} |
- {{item[2]}} |
+ {{item[0]}} |
+ {{item[1]}} |
+ {{item[2]}} |
{% endfor %}
{% endif %}
diff --git a/flaskr/utils/games.py b/flaskr/utils/games.py
index 72f01bb..d0ffeff 100644
--- a/flaskr/utils/games.py
+++ b/flaskr/utils/games.py
@@ -7,6 +7,15 @@ def query_games():
return result
+def query_game_by_name(game_name: str):
+ sql = "SELECT id FROM games WHERE games.name=:game_name"
+ result = db.session.execute(sql, {"game_name": game_name}).fetchone()
+ if result:
+ return result[0]
+ else:
+ raise ValueError(f"No game with name {game_name} found")
+
+
def get_game_name(id: int):
sql = f"SELECT name FROM games WHERE id=:id"
result = db.session.execute(sql, {"id": id}).fetchone()
diff --git a/flaskr/views/games.py b/flaskr/views/games.py
index 70549b9..90ef89b 100644
--- a/flaskr/views/games.py
+++ b/flaskr/views/games.py
@@ -1,6 +1,11 @@
-from flask import render_template
+from flask import render_template, redirect
from flaskr import app
-from flaskr.utils.games import query_games, get_game_name, get_all_times_in_game
+from flaskr.utils.games import (
+ query_games,
+ get_game_name,
+ get_all_times_in_game,
+ query_game_by_name,
+)
@app.route("/games")
@@ -22,3 +27,13 @@ def get_game_by_id(game_id):
)
times = get_all_times_in_game(game_id)
return render_template("game_id.html", game_name=game_name, times=times)
+
+
+@app.route("/api/game/")
+def get_game_by_name(game_name: str):
+ try:
+ game_name = str(game_name).replace("%20", " ")
+ game_id = query_game_by_name(game_name)
+ return redirect(f"/games/{game_id}")
+ except ValueError as e:
+ return render_template("error.html", message=f"Error fetching game name, {e}")