diff --git a/api/routers/core.py b/api/routers/core.py index d4c62253b..34d221f4e 100644 --- a/api/routers/core.py +++ b/api/routers/core.py @@ -860,7 +860,7 @@ def all_issue_types(context: schemas.CurrentContext = Depends(OR_context)): @app.get('/{projectId}/assist/sessions', tags=["assist"]) -def sessions_live(projectId: int, userId: str = None, context: schemas.CurrentContext = Depends(OR_context)): +def get_sessions_live(projectId: int, userId: str = None, context: schemas.CurrentContext = Depends(OR_context)): data = assist.get_live_sessions_ws_user_id(projectId, user_id=userId) return {'data': data} diff --git a/api/routers/subs/v1_api.py b/api/routers/subs/v1_api.py index 1dcc7eb7d..3892bfef2 100644 --- a/api/routers/subs/v1_api.py +++ b/api/routers/subs/v1_api.py @@ -12,7 +12,8 @@ public_app, app, app_apikey = get_routers() @app_apikey.get('/v1/{projectKey}/users/{userId}/sessions', tags=["api"]) def get_user_sessions(projectKey: str, userId: str, start_date: int = None, end_date: int = None): projectId = projects.get_internal_project_id(projectKey) - + if projectId is None: + return {"errors": ["invalid projectKey"]} return { 'data': sessions.get_user_sessions( project_id=projectId, @@ -26,6 +27,8 @@ def get_user_sessions(projectKey: str, userId: str, start_date: int = None, end_ @app_apikey.get('/v1/{projectKey}/sessions/{sessionId}/events', tags=["api"]) def get_session_events(projectKey: str, sessionId: int): projectId = projects.get_internal_project_id(projectKey) + if projectId is None: + return {"errors": ["invalid projectKey"]} return { 'data': events.get_by_sessionId2_pg( project_id=projectId, @@ -37,6 +40,8 @@ def get_session_events(projectKey: str, sessionId: int): @app_apikey.get('/v1/{projectKey}/users/{userId}', tags=["api"]) def get_user_details(projectKey: str, userId: str): projectId = projects.get_internal_project_id(projectKey) + if projectId is None: + return {"errors": ["invalid projectKey"]} return { 'data': sessions.get_session_user( project_id=projectId, @@ -48,6 +53,8 @@ def get_user_details(projectKey: str, userId: str): @app_apikey.delete('/v1/{projectKey}/users/{userId}', tags=["api"]) def schedule_to_delete_user_data(projectKey: str, userId: str): projectId = projects.get_internal_project_id(projectKey) + if projectId is None: + return {"errors": ["invalid projectKey"]} data = {"action": "delete_user_data", "reference_id": userId, "description": f"Delete user sessions of userId = {userId}", @@ -61,6 +68,8 @@ def schedule_to_delete_user_data(projectKey: str, userId: str): @app_apikey.get('/v1/{projectKey}/jobs', tags=["api"]) def get_jobs(projectKey: str): projectId = projects.get_internal_project_id(projectKey) + if projectId is None: + return {"errors": ["invalid projectKey"]} return { 'data': jobs.get_all(project_id=projectId) } diff --git a/ee/api/chalicelib/core/tenants.py b/ee/api/chalicelib/core/tenants.py index 71119fd13..3f810884e 100644 --- a/ee/api/chalicelib/core/tenants.py +++ b/ee/api/chalicelib/core/tenants.py @@ -34,8 +34,7 @@ def get_by_tenant_id(tenant_id): t.created_at, '{license.EDITION}' AS edition, t.version_number, - t.opt_out, - t.tenant_key + t.opt_out FROM public.tenants AS t WHERE t.tenant_id = %(tenantId)s AND t.deleted_at ISNULL LIMIT 1;""", diff --git a/ee/api/entrypoint.sh b/ee/api/entrypoint.sh index d8ca9fa4f..a41427181 100755 --- a/ee/api/entrypoint.sh +++ b/ee/api/entrypoint.sh @@ -1,5 +1,4 @@ #!/bin/bash -bash env_vars.sh cd sourcemap-reader nohup npm start &> /tmp/sourcemap-reader.log & cd .. diff --git a/ee/api/routers/subs/v1_api_ee.py b/ee/api/routers/subs/v1_api_ee.py index 3ca55d3e9..05f732974 100644 --- a/ee/api/routers/subs/v1_api_ee.py +++ b/ee/api/routers/subs/v1_api_ee.py @@ -1,4 +1,10 @@ +from fastapi import Depends, Body + +import schemas from chalicelib.utils import assist_helper +from chalicelib.core import projects +from or_dependencies import OR_context +from routers import core from routers.base import get_routers public_app, app, app_apikey = get_routers() @@ -10,3 +16,16 @@ def get_assist_credentials(): if "errors" in credentials: return credentials return {"data": credentials} + + +@app_apikey.get('/v1/{projectKey}/assist/sessions', tags=["api"]) +def get_sessions_live(projectKey: str, userId: str = None, context: schemas.CurrentContext = Depends(OR_context)): + return core.get_sessions_live(projectId=projects.get_internal_project_id(projectKey), + userId=userId, context=context) + + +@app_apikey.post('/v1/{projectKey}/assist/sessions', tags=["api"]) +def sessions_live(projectKey: int, data: schemas.LiveSessionsSearchPayloadSchema = Body(...), + context: schemas.CurrentContext = Depends(OR_context)): + return core.sessions_live(projectId=projects.get_internal_project_id(projectKey), + data=data, context=context)