1- import re
21from datetime import datetime as dt
32from operator import attrgetter
43from typing import List
1312from app .database .models import User
1413from app .database .models import UserEvent
1514from app .dependencies import templates
16- from app .internal .event import validate_zoom_link
15+ from app .internal .event import validate_zoom_link , get_invited_emails , get_uninvited_regular_emails
1716from app .internal .utils import create_model
1817from app .routers .user import create_user
1918
20- VALID_MAIL_REGEX = re .compile (r'^\S+@\S+\.\S+$' )
21-
2219
2320router = APIRouter (
2421 prefix = "/event" ,
@@ -49,27 +46,17 @@ async def create_new_event(request: Request, session=Depends(get_db)):
4946 is_zoom = location_type == 'vc_url'
5047 location = data ['location' ]
5148
52- invitees = []
53- for invited_mail in data ['invited' ].split (',' ):
54- invited_mail = invited_mail .strip ()
55- if VALID_MAIL_REGEX .fullmatch (invited_mail ):
56- invitees .append (invited_mail )
57-
58- regular_invitees = set ()
59- for record in session .query (Event ).\
60- with_entities (Event .invitees ).\
61- filter (Event .owner_id == owner_id , Event .title == title ).all ():
62- for email in record [0 ].split (',' ):
63- regular_invitees .add (email )
64-
65- uninvited_contacts = regular_invitees .difference (set (invitees ))
49+ invited_emails = get_invited_emails (data ['invited' ])
50+ uninvited_contacts = get_uninvited_regular_emails (session , owner_id , title , invited_emails )
6651
6752 if is_zoom :
6853 validate_zoom_link (location )
6954
7055 event = create_event (session , title , start , end , owner_id , content ,
71- location , invitees )
72- message = f'Forgot to invite { ", " .join (uninvited_contacts )} maybe?'
56+ location , invited_emails )
57+ message = ''
58+ if uninvited_contacts :
59+ message = f'Forgot to invite { ", " .join (uninvited_contacts )} maybe?'
7360 return RedirectResponse (f'/event/view/{ event .id } ?message={ message } ' ,
7461 status_code = HTTP_303_SEE_OTHER )
7562
@@ -86,10 +73,9 @@ def create_event(db, title, start, end, owner_id, content=None,
8673 location = None , invitees = None ):
8774 """Creates an event and an association."""
8875
76+ invitees_concatenated = ''
8977 if invitees :
90- invitees_str = ',' .join (invitees )
91- else :
92- invitees_str = ''
78+ invitees_concatenated = ',' .join (invitees )
9379
9480 event = create_model (
9581 db , Event ,
@@ -99,7 +85,7 @@ def create_event(db, title, start, end, owner_id, content=None,
9985 content = content ,
10086 owner_id = owner_id ,
10187 location = location ,
102- invitees = invitees_str
88+ invitees = invitees_concatenated
10389 )
10490 create_model (
10591 db , UserEvent ,
0 commit comments