mirror of
https://github.com/home-assistant/core.git
synced 2025-07-19 03:07:37 +00:00
Improve local calendar input validation error handling (#83563)
This commit is contained in:
parent
4f63eab453
commit
16f94e68b3
@ -11,6 +11,8 @@ from ical.calendar_stream import IcsCalendarStream
|
|||||||
from ical.event import Event
|
from ical.event import Event
|
||||||
from ical.store import EventStore
|
from ical.store import EventStore
|
||||||
from ical.types import Range, Recur
|
from ical.types import Range, Recur
|
||||||
|
from pydantic import ValidationError
|
||||||
|
import voluptuous as vol
|
||||||
|
|
||||||
from homeassistant.components.calendar import (
|
from homeassistant.components.calendar import (
|
||||||
EVENT_DESCRIPTION,
|
EVENT_DESCRIPTION,
|
||||||
@ -102,14 +104,19 @@ class LocalCalendarEntity(CalendarEntity):
|
|||||||
|
|
||||||
async def async_create_event(self, **kwargs: Any) -> None:
|
async def async_create_event(self, **kwargs: Any) -> None:
|
||||||
"""Add a new event to calendar."""
|
"""Add a new event to calendar."""
|
||||||
event = Event.parse_obj(
|
event_data = {
|
||||||
{
|
EVENT_SUMMARY: kwargs[EVENT_SUMMARY],
|
||||||
EVENT_SUMMARY: kwargs[EVENT_SUMMARY],
|
EVENT_START: kwargs[EVENT_START],
|
||||||
EVENT_START: kwargs[EVENT_START],
|
EVENT_END: kwargs[EVENT_END],
|
||||||
EVENT_END: kwargs[EVENT_END],
|
EVENT_DESCRIPTION: kwargs.get(EVENT_DESCRIPTION),
|
||||||
EVENT_DESCRIPTION: kwargs.get(EVENT_DESCRIPTION),
|
}
|
||||||
}
|
try:
|
||||||
)
|
event = Event.parse_obj(event_data)
|
||||||
|
except ValidationError as err:
|
||||||
|
_LOGGER.debug(
|
||||||
|
"Error parsing event input fields: %s (%s)", event_data, str(err)
|
||||||
|
)
|
||||||
|
raise vol.Invalid("Error parsing event input fields") from err
|
||||||
if rrule := kwargs.get(EVENT_RRULE):
|
if rrule := kwargs.get(EVENT_RRULE):
|
||||||
event.rrule = Recur.from_rrule(rrule)
|
event.rrule = Recur.from_rrule(rrule)
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user