[mod] source:ics_feed:try-catch for ics parsing

This commit is contained in:
fenris 2025-09-22 20:09:58 +02:00
parent eac0831e64
commit 213d1324bb

View file

@ -159,10 +159,32 @@ class class_source_ics_feed
case 200: case 200:
{ {
$ics = $response->getBody(); $ics = $response->getBody();
$vcalendar = \davina\helpers\ics\vcalendar_decode($ics); try
$calendar = $this->vcalendar_to_calendar($vcalendar, $realm_name); {
$calendar_raw = \davina\model\calendar_to_raw($calendar); $vcalendar = \davina\helpers\ics\vcalendar_decode($ics);
return $calendar_raw; }
catch (\Throwable $throwable)
{
\error_log(
\davina\helpers\string_\coin(
'could not parse ics: {{reason}}',
[
'reason' => \strval($throwable),
]
)
);
$valendar = null;
}
if ($vcalendar === null)
{
throw (new \Exception('could not parse ics'));
}
else
{
$calendar = $this->vcalendar_to_calendar($vcalendar, $realm_name);
$calendar_raw = \davina\model\calendar_to_raw($calendar);
return $calendar_raw;
}
break; break;
} }
default: default: