diff options
Diffstat (limited to 'cgi/add_participant.py')
| -rw-r--r-- | cgi/add_participant.py | 87 |
1 files changed, 87 insertions, 0 deletions
diff --git a/cgi/add_participant.py b/cgi/add_participant.py new file mode 100644 index 0000000..7431b3b --- /dev/null +++ b/cgi/add_participant.py @@ -0,0 +1,87 @@ +#!/usr/bin/env python3 + +import os +import sqlite3 + +db_path = "terminfinder_db.sqlite" + +if not os.path.exists(db_path): + print(f"DB named {db_path} does not exist!") + exit(1) + +con = sqlite3.connect(db_path) +cur = con.cursor() + + +def add_participant(meeting_id, part_name, data): + select = cur.execute( + "SELECT participants FROM meeting WHERE meeting_id = ?;", (meeting_id,) + ) + participants = select.fetchone()[0] + if participants is not None and part_name in participants.split(","): + print("Participant name already taken!") + else: + cur.execute( + "UPDATE meeting SET participants = ? WHERE meeting_id = ?;", + ( + ( + participants + "," + part_name + if participants is not None + else part_name + ), + meeting_id, + ), + ) + for datum in data: + if datum[1]: + select = cur.execute( + f"SELECT confirming FROM meeting_dates_{meeting_id} WHERE date = ?;", + (datum[0],), + ) + result = select.fetchone() + new_confirming = ( + result[0] + "," + part_name if result[0] is not None else part_name + ) + cur.execute( + f"UPDATE meeting_dates_{meeting_id} SET confirming = ? WHERE date = ?;", + ( + new_confirming, + datum[0], + ), + ) + else: + select = cur.execute( + f"SELECT declining FROM meeting_dates_{meeting_id} WHERE date = ?;", + (datum[0],), + ) + result = select.fetchone() + new_declining = ( + result[0] + "," + part_name if result[0] is not None else part_name + ) + cur.execute( + f"UPDATE meeting_dates_{meeting_id} SET declining = ? WHERE date = ?;", + ( + new_declining, + datum[0], + ), + ) + con.commit() + + +meeting_id = "meet1" +part_name = "niklas" +data = [ + ("2026-01-01_12-00", True), + ("2026-01-01_13-00", False), + ("2026-01-02_14-00", True), +] +add_participant(meeting_id, part_name, data) + +meeting_id = "meet1" +part_name = "philip" +data = [ + ("2026-01-01_12-00", False), + ("2026-01-01_13-00", True), + ("2026-01-02_14-00", True), +] +add_participant(meeting_id, part_name, data) |
