From 78697aa6af6986a72975fada6a9ab5f093ce8bbd Mon Sep 17 00:00:00 2001 From: Xuan Yang Date: Thu, 17 Jul 2025 10:31:30 -0700 Subject: [PATCH] chore: add `to_session` method in `StorageSession` for readability PiperOrigin-RevId: 784232578 --- .../adk/sessions/database_session_service.py | 49 ++++++++++--------- 1 file changed, 25 insertions(+), 24 deletions(-) diff --git a/src/google/adk/sessions/database_session_service.py b/src/google/adk/sessions/database_session_service.py index 8ba284da..053b8de7 100644 --- a/src/google/adk/sessions/database_session_service.py +++ b/src/google/adk/sessions/database_session_service.py @@ -160,6 +160,26 @@ class StorageSession(Base): return self.update_time.replace(tzinfo=timezone.utc).timestamp() return self.update_time.timestamp() + def to_session( + self, + state: dict[str, Any] | None = None, + events: list[Event] | None = None, + ) -> Session: + """Converts the storage session to a session object.""" + if state is None: + state = {} + if events is None: + events = [] + + return Session( + app_name=self.app_name, + user_id=self.user_id, + id=self.id, + state=state, + events=events, + last_update_time=self.update_timestamp_tz, + ) + class StorageEvent(Base): """Represents an event stored in the database.""" @@ -423,14 +443,8 @@ class DatabaseSessionService(BaseSessionService): # Merge states for response merged_state = _merge_state(app_state, user_state, session_state) - session = Session( - app_name=str(storage_session.app_name), - user_id=str(storage_session.user_id), - id=str(storage_session.id), - state=merged_state, - last_update_time=storage_session.update_timestamp_tz, - ) - return session + session = storage_session.to_session(state=merged_state) + return session @override async def get_session( @@ -486,14 +500,8 @@ class DatabaseSessionService(BaseSessionService): merged_state = _merge_state(app_state, user_state, session_state) # Convert storage session to session - session = Session( - app_name=app_name, - user_id=user_id, - id=session_id, - state=merged_state, - last_update_time=storage_session.update_timestamp_tz, - ) - session.events = [e.to_event() for e in reversed(storage_events)] + events = [e.to_event() for e in reversed(storage_events)] + session = storage_session.to_session(state=merged_state, events=events) return session @override @@ -509,14 +517,7 @@ class DatabaseSessionService(BaseSessionService): ) sessions = [] for storage_session in results: - session = Session( - app_name=app_name, - user_id=user_id, - id=storage_session.id, - state={}, - last_update_time=storage_session.update_timestamp_tz, - ) - sessions.append(session) + sessions.append(storage_session.to_session()) return ListSessionsResponse(sessions=sessions) @override