Basic error handling in icalendar event upload

This commit is contained in:
Kevin Alberts 2020-11-11 20:49:35 +01:00
parent 079847ae4e
commit 06c5c485f7
Signed by: Kurocon
GPG key ID: BCD496FEBA0C6BC1

View file

@ -1,3 +1,4 @@
import logging
from typing import List, Tuple, Optional
import caldav
@ -74,8 +75,10 @@ class CalDAVCalendar(models.Model):
:return Amount of events added, updated, and deleted
:rtype Tuple[int, int, int]
"""
logger = logging.getLogger("davinci.icalendar.ICalSync.upload_events")
calendar = self.get_calendar()
if calendar is None:
logger.error(f"No calendar found on url '{self.calendar_url}'")
raise ValueError(f"No calendar found on url '{self.calendar_url}'")
# Keep track of which events were already in the calendar
@ -97,16 +100,24 @@ class CalDAVCalendar(models.Model):
if event.uid in purge_uids:
# Need to overwrite
cevent = calendar.event_by_uid(event.uid)
cevent.data = vcal.fix(ev)
cevent.save()
try:
cevent = calendar.event_by_uid(event.uid)
cevent.data = vcal.fix(ev)
cevent.save()
except Exception as e:
logger.error(f"Error during saving of event {event.uid}: {e}")
logger.error(f"======EVENT======\n{ev}\n=================")
purge_uids.remove(event.uid)
updated += 1
else:
calendar.save_event(ev)
try:
calendar.save_event(ev)
except Exception as e:
logger.error(f"Error during saving of event {event.uid}: {e}")
logger.error(f"======EVENT======\n{ev}\n=================")
added += 1
# Purge old events