mirror of
https://github.com/iritmaximus/timetrials.git
synced 2026-10-12 19:13:48 +03:00
54 lines
1.9 KiB
Python
54 lines
1.9 KiB
Python
from flaskr.database import db
|
|
|
|
|
|
def query_times():
|
|
sql = "SELECT games.name, courses.name, times.timems, users.username FROM times JOIN games ON games.id=times.game_id JOIN courses ON courses.id=times.course_id JOIN users ON users.id=times.user_id"
|
|
result = db.session.execute(sql).fetchall()
|
|
db.session.close()
|
|
print(result)
|
|
return result
|
|
|
|
|
|
def add_time(game, course, time, user):
|
|
sql = "SELECT id FROM games WHERE games.name=:game"
|
|
game_id = db.session.execute(sql, {"game": game}).fetchone()
|
|
if game_id is None:
|
|
raise ValueError("No game_id found for", game)
|
|
|
|
sql = "SELECT id FROM courses WHERE courses.name=:course"
|
|
course_id = db.session.execute(sql, {"course": course}).fetchone()
|
|
if course_id is None:
|
|
raise ValueError("No course_id found for", course)
|
|
|
|
sql = "SELECT id FROM users WHERE users.username=:user"
|
|
user_id = db.session.execute(sql, {"user": user}).fetchone()
|
|
if user_id is None:
|
|
raise ValueError("No user_id found for", user)
|
|
|
|
sql = "SELECT courses.cup_id FROM cups, games, courses WHERE courses.game_id=:game_id AND courses.id=:course_id"
|
|
cup_id = db.session.execute(
|
|
sql, {"game_id": game_id[0], "course_id": course_id[0]}
|
|
).fetchone()
|
|
print("CUP ID = ", cup_id)
|
|
if cup_id is None:
|
|
raise ValueError("No course with the current game-course pair.")
|
|
|
|
sql = "INSERT INTO times (game_id, cup_id, course_id, timems, user_id) VALUES (:game_id, :cup_id, :course_id, :time, :user_id)"
|
|
|
|
# TODO remove these
|
|
# print(game_id, cup_id, course_id, time, user_id)
|
|
# print(sql)
|
|
|
|
db.session.execute(
|
|
sql,
|
|
{
|
|
"game_id": game_id[0],
|
|
"cup_id": cup_id[0],
|
|
"course_id": course_id[0],
|
|
"time": time,
|
|
"user_id": user_id[0],
|
|
},
|
|
)
|
|
db.session.commit()
|
|
db.session.close()
|