summaryrefslogtreecommitdiff
path: root/cgi/add_participant.py
diff options
context:
space:
mode:
Diffstat (limited to 'cgi/add_participant.py')
-rw-r--r--cgi/add_participant.py87
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)