Api assist (#71)

* feat(api): assist peerJS server

* feat(api): install assist_server dependencies and start it with the API

* feat(api): assist: list live sessions

* feat(nginx): expose assist_server and block peers listing

* feat(api): merged sourcemaps reader and assist-server
feat(api): change image definition
feat(api): changed service start command
feat(utilities): created full server & image definition
feat(nginx): reset chalice configuration

* feat(utilities): utilities.yaml

* feat(nginx): utilities URL

* feat(utilities): utilities template

* feat(ci): Adding utilities GH action.

Signed-off-by: Rajesh Rajendran <rjshrjndrn@gmail.com>

* feat(utilities): build script

* feat(utilities): build script fix image name

* feat(utilities): tag and push image as latest

* feat(api): tag and push image as latest

* feat(api): extract peers host

* feat(api): fixed utilities URL

* feat(api): assist logs

* feat(api): assist: fixed peerjs URL

* feat(api): log peers URL

* feat(api): assit: get all durations, even if it is not null

* feat(api): assit: include peerId in response

* feat(api): return project_key with session's details

* feat(assist): fix peerJS error

* feat(api): fix typo

* feat(api): assist: return live flag with session details

Co-authored-by: Rajesh Rajendran <rjshrjndrn@gmail.com>
This commit is contained in:
Kraiem Taha Yassine 2021-07-02 19:38:01 +02:00 committed by GitHub
parent 38c4e0b263
commit fa7105e64c
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 16 additions and 2 deletions

View file

@ -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

View file

@ -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