From 4584b1f58fb0a15136bd9ab8d9e63452d8e265a9 Mon Sep 17 00:00:00 2001 From: craisin Date: Thu, 27 Nov 2025 22:49:42 -0800 Subject: [PATCH] add event creation --- allfence.py | 57 ++++++++++++++++++++++++++++++++++++++++++----------- 1 file changed, 46 insertions(+), 11 deletions(-) diff --git a/allfence.py b/allfence.py index 0a772a1..6382e21 100644 --- a/allfence.py +++ b/allfence.py @@ -12,7 +12,7 @@ def create_user(db, login_info, user_info): user_info (dict of str:value): name (str) and dob (datetime.date) info Returns: - bool, str: status, message + int: 0 if the username is non-unique, user id otherwise """ username, password = login_info["username"], login_info["password"] @@ -23,10 +23,32 @@ def create_user(db, login_info, user_info): curs.execute("SELECT * FROM Users WHERE username = %s", (username,)) conflicts = curs.fetchall() if conflicts: - return False, "Duplicate username" - curs.execute("INSERT INTO Users (username, password_hash, name, dob) VALUES (%s, %s, %s, %s)", (username, password_hash, name, dob)) + return 0 + curs.execute("INSERT INTO Users (username, password_hash, name, dob) VALUES (%s, %s, %s, %s) RETURNING id", (username, password_hash, name, dob)) + user_id = curs.fetchone()[0] db.commit() - return True, "Success" + return user_id + +def get_user_from_username(db, username): + + """ + Get a user id based on their username + + Args: + db (psycopg2.connection): connection to postgres database + username (str): the username used to query + + Returns: + int: 0 if the username is not in the system, user id otherwise + """ + + with db: + with db.cursor() as curs: + curs.execute("SELECT * FROM Users WHERE username = %s", (username,)) + users = curs.fetchall() + if not users: + return 0 + return users[0][0] def get_user_details(db, user_id): @@ -50,17 +72,30 @@ def get_user_details(db, user_id): user = user[0] return True, {"username": user[1], "password_hash": user[2]}, {"name": user[3], "dob": user[4]} -def create_event(db, name, timestamp): +def create_event(db, name, time, max_age): + """ + Creates a new event in the database + + Args: + db (psycopg2.connection): connection to postgres database + name (str): event name + time (date.datetime): event time + max_age (int): how old a fencer is allowed to be at the time of the event starting + + Returns: + int: id of the event created + """ + with db: with db.cursor() as curs: - curs.execute("INSERT INTO Events (name, datetime, users, results) VALUES (%s, %s, %s, %s)", (username, password_hash, name, dob)) + curs.execute("INSERT INTO Events (name, datetime, max_age, completed, registration, results) VALUES (%s, %s, %s, False, '', '') RETURNING id", (name, time, max_age)) + event_id = curs.fetchone()[0] db.commit() - return True, "Success" - """ - -def finish_event(db, event): - pass + return event_id def create_tournament(db, events): + pass + +def finish_event(db, event): pass \ No newline at end of file