9
9
10
10
from app .database .models import Event
11
11
12
- ZOOM_REGEX = re .compile (r' https://.*?\.zoom.us/[a-z]/.[^.,\b\s]+' )
12
+ ZOOM_REGEX = re .compile (r" https://.*?\.zoom.us/[a-z]/.[^.,\b\s]+" )
13
13
14
14
15
15
def raise_if_zoom_link_invalid (vc_link ):
16
16
if ZOOM_REGEX .search (vc_link ) is None :
17
- raise HTTPException (status_code = HTTP_400_BAD_REQUEST ,
18
- detail = "VC type with no valid zoom link" )
17
+ raise HTTPException (
18
+ status_code = HTTP_400_BAD_REQUEST ,
19
+ detail = "VC type with no valid zoom link" ,
20
+ )
19
21
20
22
21
23
def get_invited_emails (invited_from_form : str ) -> List [str ]:
22
24
invited_emails = []
23
- for invited_email in invited_from_form .split (',' ):
24
- invited_email = invited_email .strip ()
25
- try :
26
- validate_email (invited_email , check_deliverability = False )
27
- except EmailSyntaxError :
28
- logging .exception (f'{ invited_email } is not a valid email address' )
29
- continue
30
- invited_emails .append (invited_email )
25
+ if not invited_from_form :
26
+ invited_emails .append ("" )
27
+ else :
28
+ for invited_email in invited_from_form .split ("," ):
29
+ invited_email = invited_email .strip ()
30
+ try :
31
+ validate_email (invited_email , check_deliverability = False )
32
+ except EmailSyntaxError :
33
+ logging .exception (
34
+ f"{ invited_email } is not a valid email address" ,
35
+ )
36
+ continue
37
+ invited_emails .append (invited_email )
31
38
32
39
return invited_emails
33
40
34
41
35
- def get_uninvited_regular_emails (session : Session ,
36
- owner_id : int ,
37
- title : str ,
38
- invited_emails : List [str ]) -> Set [str ]:
42
+ def get_uninvited_regular_emails (
43
+ session : Session ,
44
+ owner_id : int ,
45
+ title : str ,
46
+ invited_emails : List [str ],
47
+ ) -> Set [str ]:
39
48
invitees_query = session .query (Event ).with_entities (Event .invitees )
40
- similar_events_invitees = invitees_query .filter (Event .owner_id == owner_id ,
41
- Event .title == title ).all ()
49
+ similar_events_invitees = invitees_query .filter (
50
+ Event .owner_id == owner_id ,
51
+ Event .title == title ,
52
+ ).all ()
42
53
regular_invitees = set ()
43
54
for record in similar_events_invitees :
44
55
if record :
45
- regular_invitees .update (record [0 ].split (',' ))
56
+ regular_invitees .update (record [0 ].split ("," ))
46
57
47
58
return regular_invitees - set (invited_emails )
48
59
49
60
50
- def check_diffs (checked_event : Event ,
51
- all_events : List [Event ]):
61
+ def check_diffs (checked_event : Event , all_events : List [Event ]):
52
62
"""Returns the repeated events and the week difference"""
53
63
diffs = []
54
64
for event in all_events :
@@ -65,22 +75,30 @@ def check_diffs(checked_event: Event,
65
75
66
76
67
77
def find_pattern (session , event ):
68
- all_events_with_same_name = session .query (Event ).filter (
69
- Event .owner_id == event .owner_id , Event .title == event .title ).all ()
78
+ all_events_with_same_name = (
79
+ session .query (Event )
80
+ .filter (Event .owner_id == event .owner_id , Event .title == event .title )
81
+ .all ()
82
+ )
70
83
71
84
return check_diffs (event , all_events_with_same_name )
72
85
73
86
74
- def get_messages (session : Session ,
75
- event : Event ,
76
- uninvited_contacts : Set [str ]) -> List [str ]:
87
+ def get_messages (
88
+ session : Session ,
89
+ event : Event ,
90
+ uninvited_contacts : Set [str ],
91
+ ) -> List [str ]:
77
92
messages = []
78
93
if uninvited_contacts :
79
- messages .append (f'Forgot to invite '
80
- f'{ ", " .join (uninvited_contacts )} maybe?' )
94
+ messages .append (
95
+ f"Forgot to invite " f'{ ", " .join (uninvited_contacts )} maybe?' ,
96
+ )
81
97
82
98
pattern = find_pattern (session , event )
83
99
for weeks_diff in pattern :
84
- messages .append (f'Same event happened { weeks_diff } weeks before too. '
85
- f'Want to create another one { weeks_diff } after too?' )
100
+ messages .append (
101
+ f"Same event happened { weeks_diff } weeks before too. "
102
+ f"Want to create another one { weeks_diff } after too?" ,
103
+ )
86
104
return messages
0 commit comments