diff --git a/api/chalicelib/core/projects.py b/api/chalicelib/core/projects.py index f6b7704f5..0b0bd963f 100644 --- a/api/chalicelib/core/projects.py +++ b/api/chalicelib/core/projects.py @@ -41,26 +41,14 @@ def __create(tenant_id, name): return get_project(tenant_id=tenant_id, project_id=project_id, include_gdpr=True) -def get_projects(tenant_id, recording_state=False, gdpr=None, recorded=False, stack_integrations=False, version=False, - last_tracker_version=None): +def get_projects(tenant_id, recording_state=False, gdpr=None, recorded=False, stack_integrations=False): with pg_client.PostgresClient() as cur: - tracker_query = "" - if last_tracker_version is not None and len(last_tracker_version) > 0: - tracker_query = cur.mogrify( - """,(SELECT tracker_version FROM public.sessions - WHERE sessions.project_id = s.project_id - AND tracker_version=%(version)s AND tracker_version IS NOT NULL LIMIT 1) AS tracker_version""", - {"version": last_tracker_version}).decode('UTF-8') - elif version: - tracker_query = ",(SELECT tracker_version FROM public.sessions WHERE sessions.project_id = s.project_id ORDER BY start_ts DESC LIMIT 1) AS tracker_version" - cur.execute(f"""\ SELECT s.project_id, s.name, s.project_key, s.save_request_payloads {',s.gdpr' if gdpr else ''} {',COALESCE((SELECT TRUE FROM public.sessions WHERE sessions.project_id = s.project_id LIMIT 1), FALSE) AS recorded' if recorded else ''} {',stack_integrations.count>0 AS stack_integrations' if stack_integrations else ''} - {tracker_query} FROM public.projects AS s {'LEFT JOIN LATERAL (SELECT COUNT(*) AS count FROM public.integrations WHERE s.project_id = integrations.project_id LIMIT 1) AS stack_integrations ON TRUE' if stack_integrations else ''} WHERE s.deleted_at IS NULL @@ -90,19 +78,8 @@ def get_projects(tenant_id, recording_state=False, gdpr=None, recorded=False, st return helper.list_to_camel_case(rows) -def get_project(tenant_id, project_id, include_last_session=False, include_gdpr=None, version=False, - last_tracker_version=None): +def get_project(tenant_id, project_id, include_last_session=False, include_gdpr=None): with pg_client.PostgresClient() as cur: - tracker_query = "" - if last_tracker_version is not None and len(last_tracker_version) > 0: - tracker_query = cur.mogrify( - """,(SELECT tracker_version FROM public.sessions - WHERE sessions.project_id = s.project_id - AND tracker_version=%(version)s AND tracker_version IS NOT NULL LIMIT 1) AS tracker_version""", - {"version": last_tracker_version}).decode('UTF-8') - elif version: - tracker_query = ",(SELECT tracker_version FROM public.sessions WHERE sessions.project_id = s.project_id ORDER BY start_ts DESC LIMIT 1) AS tracker_version" - query = cur.mogrify(f"""\ SELECT s.project_id, @@ -111,7 +88,6 @@ def get_project(tenant_id, project_id, include_last_session=False, include_gdpr= s.save_request_payloads {",(SELECT max(ss.start_ts) FROM public.sessions AS ss WHERE ss.project_id = %(project_id)s) AS last_recorded_session_at" if include_last_session else ""} {',s.gdpr' if include_gdpr else ''} - {tracker_query} FROM public.projects AS s where s.project_id =%(project_id)s AND s.deleted_at IS NULL diff --git a/api/routers/core_dynamic.py b/api/routers/core_dynamic.py index 790e65340..e7e87e76c 100644 --- a/api/routers/core_dynamic.py +++ b/api/routers/core_dynamic.py @@ -91,10 +91,9 @@ def get_projects_limit(context: schemas.CurrentContext = Depends(OR_context)): @app.get('/projects/{projectId}', tags=['projects']) -def get_project(projectId: int, last_tracker_version: Optional[str] = None, - context: schemas.CurrentContext = Depends(OR_context)): +def get_project(projectId: int, context: schemas.CurrentContext = Depends(OR_context)): data = projects.get_project(tenant_id=context.tenant_id, project_id=projectId, include_last_session=True, - include_gdpr=True, last_tracker_version=last_tracker_version) + include_gdpr=True) if data is None: return {"errors": ["project not found"]} return {"data": data} @@ -223,7 +222,6 @@ def get_client(context: schemas.CurrentContext = Depends(OR_context)): @app.get('/projects', tags=['projects']) -def get_projects(last_tracker_version: Optional[str] = None, context: schemas.CurrentContext = Depends(OR_context)): +def get_projects(context: schemas.CurrentContext = Depends(OR_context)): return {"data": projects.get_projects(tenant_id=context.tenant_id, recording_state=True, gdpr=True, recorded=True, - stack_integrations=True, version=True, - last_tracker_version=last_tracker_version)} + stack_integrations=True)} diff --git a/ee/api/chalicelib/core/projects.py b/ee/api/chalicelib/core/projects.py index af6decffd..6a06e8230 100644 --- a/ee/api/chalicelib/core/projects.py +++ b/ee/api/chalicelib/core/projects.py @@ -41,19 +41,8 @@ def __create(tenant_id, name): return get_project(tenant_id=tenant_id, project_id=project_id, include_gdpr=True) -def get_projects(tenant_id, recording_state=False, gdpr=None, recorded=False, stack_integrations=False, version=False, - last_tracker_version=None, user_id=None): +def get_projects(tenant_id, recording_state=False, gdpr=None, recorded=False, stack_integrations=False, user_id=None): with pg_client.PostgresClient() as cur: - tracker_query = "" - if last_tracker_version is not None and len(last_tracker_version) > 0: - tracker_query = cur.mogrify( - """,(SELECT tracker_version FROM public.sessions - WHERE sessions.project_id = s.project_id - AND tracker_version=%(version)s AND tracker_version IS NOT NULL LIMIT 1) AS tracker_version""", - {"version": last_tracker_version}).decode('UTF-8') - elif version: - tracker_query = ",(SELECT tracker_version FROM public.sessions WHERE sessions.project_id = s.project_id ORDER BY start_ts DESC LIMIT 1) AS tracker_version" - role_query = """INNER JOIN LATERAL (SELECT 1 FROM users INNER JOIN roles USING (role_id) @@ -70,7 +59,6 @@ def get_projects(tenant_id, recording_state=False, gdpr=None, recorded=False, st {',s.gdpr' if gdpr else ''} {',COALESCE((SELECT TRUE FROM public.sessions WHERE sessions.project_id = s.project_id LIMIT 1), FALSE) AS recorded' if recorded else ''} {',stack_integrations.count>0 AS stack_integrations' if stack_integrations else ''} - {tracker_query} FROM public.projects AS s {'LEFT JOIN LATERAL (SELECT COUNT(*) AS count FROM public.integrations WHERE s.project_id = integrations.project_id LIMIT 1) AS stack_integrations ON TRUE' if stack_integrations else ''} {role_query if user_id is not None else ""} @@ -104,19 +92,8 @@ def get_projects(tenant_id, recording_state=False, gdpr=None, recorded=False, st return helper.list_to_camel_case(rows) -def get_project(tenant_id, project_id, include_last_session=False, include_gdpr=None, version=False, - last_tracker_version=None): +def get_project(tenant_id, project_id, include_last_session=False, include_gdpr=None): with pg_client.PostgresClient() as cur: - tracker_query = "" - if last_tracker_version is not None and len(last_tracker_version) > 0: - tracker_query = cur.mogrify( - """,(SELECT tracker_version FROM public.sessions - WHERE sessions.project_id = s.project_id - AND tracker_version=%(version)s AND tracker_version IS NOT NULL LIMIT 1) AS tracker_version""", - {"version": last_tracker_version}).decode('UTF-8') - elif version: - tracker_query = ",(SELECT tracker_version FROM public.sessions WHERE sessions.project_id = s.project_id ORDER BY start_ts DESC LIMIT 1) AS tracker_version" - query = cur.mogrify(f"""\ SELECT s.project_id, @@ -125,7 +102,6 @@ def get_project(tenant_id, project_id, include_last_session=False, include_gdpr= s.save_request_payloads {",(SELECT max(ss.start_ts) FROM public.sessions AS ss WHERE ss.project_id = %(project_id)s) AS last_recorded_session_at" if include_last_session else ""} {',s.gdpr' if include_gdpr else ''} - {tracker_query} FROM public.projects AS s where s.tenant_id =%(tenant_id)s AND s.project_id =%(project_id)s diff --git a/ee/api/routers/core_dynamic.py b/ee/api/routers/core_dynamic.py index 561100ff2..31ed1d099 100644 --- a/ee/api/routers/core_dynamic.py +++ b/ee/api/routers/core_dynamic.py @@ -97,10 +97,9 @@ def get_projects_limit(context: schemas.CurrentContext = Depends(OR_context)): @app.get('/projects/{projectId}', tags=['projects']) -def get_project(projectId: int, last_tracker_version: Optional[str] = None, - context: schemas.CurrentContext = Depends(OR_context)): +def get_project(projectId: int, context: schemas.CurrentContext = Depends(OR_context)): data = projects.get_project(tenant_id=context.tenant_id, project_id=projectId, include_last_session=True, - include_gdpr=True, last_tracker_version=last_tracker_version) + include_gdpr=True) if data is None: return {"errors": ["project not found"]} return {"data": data} @@ -227,15 +226,13 @@ def get_client(context: schemas.CurrentContext = Depends(OR_context)): r = tenants.get_by_tenant_id(context.tenant_id) if r is not None: r.pop("createdAt") - r["projects"] = projects.get_projects(tenant_id=context.tenant_id, recording_state=True, recorded=True, - stack_integrations=True, version=True, user_id=context.user_id) + return { 'data': r } @app.get('/projects', tags=['projects']) -def get_projects(last_tracker_version: Optional[str] = None, context: schemas.CurrentContext = Depends(OR_context)): +def get_projects(context: schemas.CurrentContext = Depends(OR_context)): return {"data": projects.get_projects(tenant_id=context.tenant_id, recording_state=True, gdpr=True, recorded=True, - stack_integrations=True, version=True, - last_tracker_version=last_tracker_version, user_id=context.user_id)} + stack_integrations=True, user_id=context.user_id)}