HR-ATS-Portal/backend/interview/serializers.py

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,
}