Response type should not contain datetime for Swiss Public Transport (#128391)

* response type should not contain datetime

* use isoformat
This commit is contained in:
Cyrill Raccaud 2024-10-15 07:35:05 +02:00 committed by GitHub
parent 2c00cd489e
commit c3e7fcc153
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 22 additions and 1 deletions

View File

@ -16,6 +16,7 @@ from homeassistant.config_entries import ConfigEntry
from homeassistant.core import HomeAssistant
from homeassistant.helpers.update_coordinator import DataUpdateCoordinator, UpdateFailed
import homeassistant.util.dt as dt_util
from homeassistant.util.json import JsonValueType
from .const import CONNECTIONS_COUNT, DEFAULT_UPDATE_TIME, DOMAIN
@ -110,3 +111,23 @@ class SwissPublicTransportDataUpdateCoordinator(
for i in range(limit)
if len(connections) > i and connections[i] is not None
]
async def fetch_connections_as_json(self, limit: int) -> list[JsonValueType]:
"""Fetch connections using the opendata api."""
return [
{
"departure": connection["departure"].isoformat()
if connection["departure"]
else None,
"duration": connection["duration"],
"platform": connection["platform"],
"remaining_time": connection["remaining_time"],
"start": connection["start"],
"destination": connection["destination"],
"train_number": connection["train_number"],
"transfers": connection["transfers"],
"delay": connection["delay"],
"line": connection["line"],
}
for connection in await self.fetch_connections(limit)
]

View File

@ -69,7 +69,7 @@ def setup_services(hass: HomeAssistant) -> None:
limit = call.data.get(ATTR_LIMIT) or CONNECTIONS_COUNT
coordinator = hass.data[DOMAIN][config_entry.entry_id]
try:
connections = await coordinator.fetch_connections(limit=int(limit))
connections = await coordinator.fetch_connections_as_json(limit=int(limit))
except UpdateFailed as e:
raise HomeAssistantError(
translation_domain=DOMAIN,