33 lines
1.1 KiB
Python
33 lines
1.1 KiB
Python
def serialize_event(payload) -> dict:
|
|
"""Upstream calendar event -> the fields the interview row stores."""
|
|
if not isinstance(payload,dict):
|
|
payload={}
|
|
online=payload.get("onlineMeeting") or payload.get("online_meeting") or {}
|
|
if not isinstance(online,dict):
|
|
online={}
|
|
start=payload.get("start")
|
|
end=payload.get("end")
|
|
if isinstance(start,dict):
|
|
start=start.get("dateTime") or start.get("date_time")
|
|
if isinstance(end,dict):
|
|
end=end.get("dateTime") or end.get("date_time")
|
|
if hasattr(start,"isoformat"):
|
|
start=start.isoformat()
|
|
if hasattr(end,"isoformat"):
|
|
end=end.isoformat()
|
|
event_id=payload.get("id")
|
|
return {
|
|
"id": str(event_id) if event_id is not None else None,
|
|
"web_link": payload.get("webLink") or payload.get("web_link") or None,
|
|
"online_meeting_url": (
|
|
payload.get("onlineMeetingUrl")
|
|
or payload.get("online_meeting_url")
|
|
or online.get("joinUrl")
|
|
or online.get("join_url")
|
|
or None
|
|
),
|
|
"subject": payload.get("subject"),
|
|
"start": start,
|
|
"end": end,
|
|
}
|