Fix availability busy slot serialization in REST adapter

master
oabrivard 6 days ago
parent e74b29381c
commit df577e62b4

@ -398,7 +398,10 @@ async def availability(request: AvailabilityRequest) -> AvailabilityResponse:
start=result.start, start=result.start,
end=result.end, end=result.end,
available=result.available, available=result.available,
busy_slots=result.busy_slots, # type: ignore busy_slots=[
BusySlot.model_validate(slot, from_attributes=True)
for slot in result.busy_slots
],
checked_calendars=result.checked_calendars, checked_calendars=result.checked_calendars,
) )
except ValueError as exc: except ValueError as exc:

@ -6,11 +6,7 @@ from fastapi import Response
import app.a2a.router as a2a_module import app.a2a.router as a2a_module
from app.a2a.models import A2ARpcRequest from app.a2a.models import A2ARpcRequest
from app.core.models import CoreBusySlot
class _Slot(dict):
def __getattr__(self, item: str) -> str:
return self[item]
class _DummyCoreService: class _DummyCoreService:
@ -21,7 +17,7 @@ class _DummyCoreService:
calendar_ids: list[str] | None, calendar_ids: list[str] | None,
) -> SimpleNamespace: ) -> SimpleNamespace:
checked = calendar_ids or ["primary"] checked = calendar_ids or ["primary"]
busy_slots = [_Slot(calendar_id=checked[0], start=start, end=end)] busy_slots = [CoreBusySlot(calendar_id=checked[0], start=start, end=end)]
return SimpleNamespace( return SimpleNamespace(
start=start, start=start,
end=end, end=end,

@ -7,16 +7,12 @@ from fastapi import Response
import app.a2a.router as a2a_module import app.a2a.router as a2a_module
from app.a2a.models import A2ARpcRequest from app.a2a.models import A2ARpcRequest
from app.core.models import CoreBusySlot
import app.main as main_module import app.main as main_module
import app.mcp.server as mcp_server_module import app.mcp.server as mcp_server_module
import app.mcp.tools as mcp_tools_module import app.mcp.tools as mcp_tools_module
class _Slot(dict):
def __getattr__(self, item: str) -> str:
return self[item]
class _DummyCoreService: class _DummyCoreService:
def check_availability( def check_availability(
self, self,
@ -25,7 +21,7 @@ class _DummyCoreService:
calendar_ids: list[str] | None, calendar_ids: list[str] | None,
) -> SimpleNamespace: ) -> SimpleNamespace:
checked = calendar_ids or ["primary"] checked = calendar_ids or ["primary"]
busy_slots = [_Slot(calendar_id=checked[0], start=start, end=end)] busy_slots = [CoreBusySlot(calendar_id=checked[0], start=start, end=end)]
return SimpleNamespace( return SimpleNamespace(
start=start, start=start,
end=end, end=end,

@ -4,11 +4,7 @@ import asyncio
from types import SimpleNamespace from types import SimpleNamespace
import app.main as main_module import app.main as main_module
from app.core.models import CoreBusySlot
class _Slot(dict):
def __getattr__(self, item: str) -> str:
return self[item]
class _DummyCoreService: class _DummyCoreService:
@ -20,7 +16,7 @@ class _DummyCoreService:
) -> SimpleNamespace: ) -> SimpleNamespace:
checked = calendar_ids or ["primary"] checked = calendar_ids or ["primary"]
busy_slots = [ busy_slots = [
_Slot( CoreBusySlot(
calendar_id=checked[0], calendar_id=checked[0],
start=start, start=start,
end=end, end=end,

Loading…
Cancel
Save