119 lines
2.1 KiB
Python
119 lines
2.1 KiB
Python
from database import execute
|
|
from database import fetch_all, fetch_one
|
|
|
|
|
|
def get_user_events(user_id):
|
|
|
|
query = """
|
|
SELECT events.*
|
|
FROM events
|
|
JOIN room_members
|
|
ON events.room_id = room_members.room_id
|
|
WHERE room_members.user_id = ?
|
|
"""
|
|
|
|
return fetch_all(
|
|
query,
|
|
(user_id,)
|
|
)
|
|
|
|
def create_event(
|
|
room_id,
|
|
creator_id,
|
|
type,
|
|
title,
|
|
description,
|
|
start_time,
|
|
end_time,
|
|
visibility,
|
|
status,
|
|
min_people
|
|
):
|
|
query = """
|
|
INSERT INTO events (
|
|
room_id,
|
|
creator_id,
|
|
type,
|
|
title,
|
|
description,
|
|
start_time,
|
|
end_time,
|
|
visibility,
|
|
status,
|
|
min_people
|
|
)
|
|
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
|
|
"""
|
|
|
|
event_id = execute(
|
|
query,
|
|
(
|
|
room_id,
|
|
creator_id,
|
|
type,
|
|
title,
|
|
description,
|
|
start_time,
|
|
end_time,
|
|
visibility,
|
|
status,
|
|
min_people
|
|
)
|
|
)
|
|
|
|
return event_id
|
|
|
|
|
|
# voorbeeld create_event. alleen voor deocumentatie,
|
|
# als je echt een event toe wil voegen, moet je data
|
|
# uit de fastapi halen.
|
|
#
|
|
#
|
|
# event = create_event(
|
|
# room_id=2,
|
|
# creator_id=3,
|
|
# type="proposal",
|
|
# title="Kaas eten",
|
|
# description="We gaan met z'n allen kaas eten.",
|
|
# start_time="2026-08-10 19:00",
|
|
# end_time="2026-08-10 21:00",
|
|
# visibility="room",
|
|
# status="proposed",
|
|
# min_people=4
|
|
# )
|
|
|
|
# print("Nieuw event ID:", event)
|
|
|
|
def check_event_threshold(event_id):
|
|
|
|
query = """
|
|
SELECT
|
|
events.min_people,
|
|
COUNT(event_signups.user_id) AS going
|
|
FROM events
|
|
|
|
LEFT JOIN event_signups
|
|
ON events.id = event_signups.event_id
|
|
AND event_signups.status = 'going'
|
|
|
|
WHERE events.id = ?
|
|
|
|
GROUP BY events.id
|
|
"""
|
|
|
|
event = fetch_one(
|
|
query,
|
|
(event_id,)
|
|
)
|
|
|
|
if event["going"] >= event["min_people"]:
|
|
|
|
execute(
|
|
"""
|
|
UPDATE events
|
|
SET status = 'confirmed'
|
|
WHERE id = ?
|
|
""",
|
|
(event_id,)
|
|
)
|