From 7e74ecc1c750d01661206113bb2f64f98689a529 Mon Sep 17 00:00:00 2001 From: Maksim Ivanov Date: Sun, 16 Feb 2025 13:11:03 +0100 Subject: [PATCH] Define get_persistent_browser_session_by_id (#1774) Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com> --- skyvern/forge/sdk/db/client.py | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/skyvern/forge/sdk/db/client.py b/skyvern/forge/sdk/db/client.py index c42064b3..83fe20c7 100644 --- a/skyvern/forge/sdk/db/client.py +++ b/skyvern/forge/sdk/db/client.py @@ -2526,6 +2526,30 @@ class AgentDB: LOG.error("UnexpectedError", exc_info=True) raise + async def get_persistent_browser_session_by_id(self, session_id: str) -> Optional[PersistentBrowserSession]: + """Get a specific persistent browser session.""" + try: + async with self.Session() as session: + persistent_browser_session = ( + await session.scalars( + select(PersistentBrowserSessionModel) + .filter_by(persistent_browser_session_id=session_id) + .filter_by(deleted_at=None) + ) + ).first() + if persistent_browser_session: + return PersistentBrowserSession.model_validate(persistent_browser_session) + raise NotFoundError(f"PersistentBrowserSession {session_id} not found") + except NotFoundError: + LOG.error("NotFoundError", exc_info=True) + raise + except SQLAlchemyError: + LOG.error("SQLAlchemyError", exc_info=True) + raise + except Exception: + LOG.error("UnexpectedError", exc_info=True) + raise + async def get_persistent_browser_session( self, session_id: str, organization_id: str ) -> Optional[PersistentBrowserSessionModel]: