diff --git a/api/chalicelib/core/assist.py b/api/chalicelib/core/assist.py index be5431990..2e17bd516 100644 --- a/api/chalicelib/core/assist.py +++ b/api/chalicelib/core/assist.py @@ -37,7 +37,19 @@ def get_live_sessions(project_id): FROM public.sessions AS s WHERE s.project_id = %(project_id)s AND session_id IN %(connected_peers)s;""", - {"project_id": project_id, "connected_peers": connected_peers, "project_key":project_key}) + {"project_id": project_id, "connected_peers": connected_peers, "project_key": project_key}) cur.execute(query) results = cur.fetchall() return helper.list_to_camel_case(results) + + +def is_live(project_id, session_id, project_key=None): + if project_key is None: + project_key = projects.get_project_key(project_id) + connected_peers = requests.get(environ["peers"] + f"/{project_key}") + if connected_peers.status_code != 200: + print("!! issue with the peer-server") + print(connected_peers.text) + return False + connected_peers = connected_peers.json().get("data", []) + return session_id in connected_peers diff --git a/api/chalicelib/core/sessions.py b/api/chalicelib/core/sessions.py index 64004e7a0..6dc0edc29 100644 --- a/api/chalicelib/core/sessions.py +++ b/api/chalicelib/core/sessions.py @@ -1,6 +1,6 @@ from chalicelib.utils import pg_client, helper, dev from chalicelib.core import events, sessions_metas, socket_ios, metadata, events_ios, \ - sessions_mobs, issues, projects, errors, resources + sessions_mobs, issues, projects, errors, resources, assist SESSION_PROJECTION_COLS = """s.project_id, s.session_id::text AS session_id, @@ -100,6 +100,8 @@ def get_by_id2_pg(project_id, session_id, user_id, full_data=False, include_fav_ data['metadata'] = __group_metadata(project_metadata=data.pop("projectMetadata"), session=data) data['issues'] = issues.get_by_session_id(session_id=session_id) + data['live'] = assist.is_live(project_id=project_id, session_id=session_id, + project_key=data["projectKey"]) return data return None