feat(chalice): fixed favorite session
This commit is contained in:
parent
61d0445317
commit
d350f29f54
4 changed files with 25 additions and 31 deletions
|
|
@ -1,38 +1,39 @@
|
|||
import schemas
|
||||
from chalicelib.core import sessions
|
||||
from chalicelib.utils import pg_client
|
||||
|
||||
|
||||
def add_favorite_session(tenant_id, project_id, user_id, session_id):
|
||||
def add_favorite_session(context: schemas.CurrentContext, project_id, session_id):
|
||||
with pg_client.PostgresClient() as cur:
|
||||
cur.execute(
|
||||
cur.mogrify(f"""\
|
||||
INSERT INTO public.user_favorite_sessions(user_id, session_id)
|
||||
VALUES (%(userId)s,%(session_id)s);""",
|
||||
{"userId": user_id, "session_id": session_id})
|
||||
{"userId": context.user_id, "session_id": session_id})
|
||||
)
|
||||
return sessions.get_by_id2_pg(tenant_id=tenant_id, project_id=project_id, session_id=session_id, user_id=user_id,
|
||||
return sessions.get_by_id2_pg(context=context, project_id=project_id, session_id=session_id,
|
||||
full_data=False, include_fav_viewed=True)
|
||||
|
||||
|
||||
def remove_favorite_session(tenant_id, project_id, user_id, session_id):
|
||||
def remove_favorite_session(context: schemas.CurrentContext, project_id, session_id):
|
||||
with pg_client.PostgresClient() as cur:
|
||||
cur.execute(
|
||||
cur.mogrify(f"""\
|
||||
DELETE FROM public.user_favorite_sessions
|
||||
WHERE user_id = %(userId)s
|
||||
AND session_id = %(session_id)s;""",
|
||||
{"userId": user_id, "session_id": session_id})
|
||||
{"userId": context.user_id, "session_id": session_id})
|
||||
)
|
||||
return sessions.get_by_id2_pg(tenant_id=tenant_id, project_id=project_id, session_id=session_id, user_id=user_id,
|
||||
return sessions.get_by_id2_pg(context=context, project_id=project_id, session_id=session_id,
|
||||
full_data=False, include_fav_viewed=True)
|
||||
|
||||
|
||||
def favorite_session(tenant_id, project_id, user_id, session_id):
|
||||
if favorite_session_exists(user_id=user_id, session_id=session_id):
|
||||
return remove_favorite_session(tenant_id=tenant_id, project_id=project_id, user_id=user_id,
|
||||
def favorite_session(context: schemas.CurrentContext, project_id, session_id):
|
||||
if favorite_session_exists(user_id=context.user_id, session_id=session_id):
|
||||
return remove_favorite_session(context=context, project_id=project_id,
|
||||
session_id=session_id)
|
||||
|
||||
return add_favorite_session(tenant_id=tenant_id, project_id=project_id, user_id=user_id, session_id=session_id)
|
||||
return add_favorite_session(context=context, project_id=project_id, session_id=session_id)
|
||||
|
||||
|
||||
def favorite_session_exists(user_id, session_id):
|
||||
|
|
|
|||
|
|
@ -208,8 +208,7 @@ def errors_stats(projectId: int, startTimestamp: int, endTimestamp: int,
|
|||
|
||||
@app.get('/{projectId}/errors/{errorId}', tags=['errors'])
|
||||
def errors_get_details(projectId: int, errorId: str, background_tasks: BackgroundTasks, density24: int = 24,
|
||||
density30: int = 30,
|
||||
context: schemas.CurrentContext = Depends(OR_context)):
|
||||
density30: int = 30, context: schemas.CurrentContext = Depends(OR_context)):
|
||||
data = errors.get_details(project_id=projectId, user_id=context.user_id, error_id=errorId,
|
||||
**{"density24": density24, "density30": density30})
|
||||
if data.get("data") is not None:
|
||||
|
|
@ -260,9 +259,8 @@ def get_live_session(projectId: int, sessionId: str, background_tasks: Backgroun
|
|||
context: schemas.CurrentContext = Depends(OR_context)):
|
||||
data = assist.get_live_session_by_id(project_id=projectId, session_id=sessionId)
|
||||
if data is None:
|
||||
data = sessions.get_by_id2_pg(tenant_id=context.tenant_id, project_id=projectId, session_id=sessionId,
|
||||
full_data=True, user_id=context.user_id, include_fav_viewed=True,
|
||||
group_metadata=True, live=False)
|
||||
data = sessions.get_by_id2_pg(context=context, project_id=projectId, session_id=sessionId,
|
||||
full_data=True, include_fav_viewed=True, group_metadata=True, live=False)
|
||||
if data is None:
|
||||
return {"errors": ["session not found"]}
|
||||
if data.get("inDB"):
|
||||
|
|
@ -318,12 +316,10 @@ def get_heatmaps_by_url(projectId: int, data: schemas.GetHeatmapPayloadSchema =
|
|||
|
||||
|
||||
@app.get('/{projectId}/sessions/{sessionId}/favorite', tags=["sessions"])
|
||||
@app.get('/{projectId}/sessions2/{sessionId}/favorite', tags=["sessions"])
|
||||
def add_remove_favorite_session2(projectId: int, sessionId: int,
|
||||
context: schemas.CurrentContext = Depends(OR_context)):
|
||||
return {
|
||||
"data": sessions_favorite.favorite_session(tenant_id=context.tenant_id, project_id=projectId,
|
||||
user_id=context.user_id, session_id=sessionId)}
|
||||
"data": sessions_favorite.favorite_session(context=context, project_id=projectId, session_id=sessionId)}
|
||||
|
||||
|
||||
@app.get('/{projectId}/sessions/{sessionId}/assign', tags=["sessions"])
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@ from chalicelib.core import sessions, sessions_favorite_exp
|
|||
from chalicelib.utils import pg_client, s3_extra
|
||||
|
||||
|
||||
def add_favorite_session(project_id, session_id, context: schemas_ee.CurrentContext):
|
||||
def add_favorite_session(context: schemas_ee.CurrentContext, project_id, session_id):
|
||||
with pg_client.PostgresClient() as cur:
|
||||
cur.execute(
|
||||
cur.mogrify(f"""\
|
||||
|
|
@ -19,7 +19,7 @@ def add_favorite_session(project_id, session_id, context: schemas_ee.CurrentCont
|
|||
full_data=False, include_fav_viewed=True, context=context)
|
||||
|
||||
|
||||
def remove_favorite_session(project_id, session_id, context: schemas_ee.CurrentContext):
|
||||
def remove_favorite_session(context: schemas_ee.CurrentContext, project_id, session_id):
|
||||
with pg_client.PostgresClient() as cur:
|
||||
cur.execute(
|
||||
cur.mogrify(f"""\
|
||||
|
|
@ -33,8 +33,8 @@ def remove_favorite_session(project_id, session_id, context: schemas_ee.CurrentC
|
|||
full_data=False, include_fav_viewed=True, context=context)
|
||||
|
||||
|
||||
def favorite_session(tenant_id, project_id, user_id, session_id, context: schemas_ee.CurrentContext):
|
||||
if favorite_session_exists(user_id=user_id, session_id=session_id):
|
||||
def favorite_session(context: schemas_ee.CurrentContext, project_id, session_id):
|
||||
if favorite_session_exists(user_id=context.user_id, session_id=session_id):
|
||||
key = str(session_id)
|
||||
try:
|
||||
s3_extra.tag_file(session_id=key, tag_value=config('RETENTION_D_VALUE', default='default'))
|
||||
|
|
@ -47,7 +47,7 @@ def favorite_session(tenant_id, project_id, user_id, session_id, context: schema
|
|||
except Exception as e:
|
||||
print(f"!!!Error while tagging: {key} to default")
|
||||
print(str(e))
|
||||
return remove_favorite_session(project_id=project_id, session_id=session_id, context=context)
|
||||
return remove_favorite_session(context=context, project_id=project_id, session_id=session_id)
|
||||
key = str(session_id)
|
||||
try:
|
||||
s3_extra.tag_file(session_id=key, tag_value=config('RETENTION_L_VALUE', default='vault'))
|
||||
|
|
@ -60,7 +60,7 @@ def favorite_session(tenant_id, project_id, user_id, session_id, context: schema
|
|||
except Exception as e:
|
||||
print(f"!!!Error while tagging: {key} to vault")
|
||||
print(str(e))
|
||||
return add_favorite_session(project_id=project_id, session_id=session_id, context=context)
|
||||
return add_favorite_session(context=context, project_id=project_id, session_id=session_id)
|
||||
|
||||
|
||||
def favorite_session_exists(user_id, session_id):
|
||||
|
|
|
|||
|
|
@ -269,8 +269,8 @@ def get_live_session(projectId: int, sessionId: str, background_tasks: Backgroun
|
|||
context: schemas_ee.CurrentContext = Depends(OR_context)):
|
||||
data = assist.get_live_session_by_id(project_id=projectId, session_id=sessionId)
|
||||
if data is None:
|
||||
data = sessions.get_by_id2_pg(project_id=projectId, session_id=sessionId, full_data=True,
|
||||
include_fav_viewed=True, group_metadata=True, live=False, context=context)
|
||||
data = sessions.get_by_id2_pg(context=context, project_id=projectId, session_id=sessionId, full_data=True,
|
||||
include_fav_viewed=True, group_metadata=True, live=False)
|
||||
if data is None:
|
||||
return {"errors": ["session not found"]}
|
||||
if data.get("inDB"):
|
||||
|
|
@ -329,13 +329,10 @@ def get_heatmaps_by_url(projectId: int, data: schemas.GetHeatmapPayloadSchema =
|
|||
|
||||
@app.get('/{projectId}/sessions/{sessionId}/favorite', tags=["sessions"],
|
||||
dependencies=[OR_scope(Permissions.session_replay)])
|
||||
@app.get('/{projectId}/sessions2/{sessionId}/favorite', tags=["sessions"],
|
||||
dependencies=[OR_scope(Permissions.session_replay)])
|
||||
def add_remove_favorite_session2(projectId: int, sessionId: int,
|
||||
context: schemas_ee.CurrentContext = Depends(OR_context)):
|
||||
return {
|
||||
"data": sessions_favorite.favorite_session(tenant_id=context.tenant_id, project_id=projectId,
|
||||
user_id=context.user_id, session_id=sessionId, context=context)}
|
||||
"data": sessions_favorite.favorite_session(context=context, project_id=projectId, session_id=sessionId)}
|
||||
|
||||
|
||||
@app.get('/{projectId}/sessions/{sessionId}/assign', tags=["sessions"],
|
||||
|
|
@ -443,7 +440,7 @@ def share_note_to_slack(projectId: int, noteId: int, webhookId: int,
|
|||
def get_all_notes(projectId: int, data: schemas.SearchNoteSchema = Body(...),
|
||||
context: schemas.CurrentContext = Depends(OR_context)):
|
||||
data = sessions_notes.get_all_notes_by_project_id(tenant_id=context.tenant_id, project_id=projectId,
|
||||
user_id=context.user_id)
|
||||
user_id=context.user_id, data=data)
|
||||
if "errors" in data:
|
||||
return data
|
||||
return {'data': data}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue