fix(api): sort order

This commit is contained in:
Shekar Siri 2023-10-09 11:39:50 +02:00
parent 9ed6a5151e
commit 7f9d91a8d1
2 changed files with 26 additions and 17 deletions

View file

@ -1,9 +1,18 @@
import logging
from datetime import datetime
from fastapi import HTTPException
from chalicelib.utils import pg_client, helper
from schemas import AssistStatsSessionsRequest, AssistStatsSessionsResponse, AssistStatsTopMembersResponse
event_type_mapping = {
"sessionsAssisted": "assist",
"assistDuration": "assist",
"callDuration": "call",
"controlDuration": "control"
}
def insert_aggregated_data():
try:
@ -261,29 +270,25 @@ def get_top_members(
sort_by: str,
sort_order: str,
user_id: int = None,
page: int = 0,
limit: int = 5,
) -> AssistStatsTopMembersResponse:
event_type_mapping = {
"sessionsAssisted": "assist",
"assistDuration": "assist",
"callDuration": "call",
"controlDuration": "control"
}
event_type = event_type_mapping.get(sort_by)
if event_type is None:
raise ValueError("Invalid sortBy option")
raise HTTPException(status_code=400, detail="Invalid sort option provided. Supported options are: " + ", ".join(
event_type_mapping.keys()))
constraints = [
"project_id = %(project_id)s",
"timestamp BETWEEN %(start_timestamp)s AND %(end_timestamp)s",
"duration > 0",
# "duration > 0",
# "event_type = %(event_type)s",
]
params = {
"project_id": project_id,
"limit": 5,
"offset": 0,
"limit": limit,
"offset": page,
"sort_by": sort_by,
"sort_order": sort_order.upper(),
"start_timestamp": start_timestamp,
@ -352,6 +357,7 @@ def get_sessions(
constraints.append("agent_id = %(agent_id)s")
params["agent_id"] = data.userId
logging.info(f">>>>>>> {params}")
sql = f"""
SELECT
COUNT(1) OVER () AS count,

View file

@ -1,8 +1,8 @@
import json
from datetime import datetime, timedelta
from typing import Union, List, Dict
from typing import Union, List, Dict, Optional
from decouple import config
from fastapi import Depends, Body, Query
from fastapi import Depends, Body, Query, HTTPException
from starlette.responses import FileResponse
import schemas
@ -889,15 +889,18 @@ def get_assist_stats_top_members(
project_id: int,
startTimestamp: int = None,
endTimestamp: int = None,
sortyBy: str = "sessionsAssisted",
sortOder: str = "desc"
sort: Optional[str] = Query(default="sessionsAssisted",
description="Sort options: " + ", ".join(assist_stats.event_type_mapping)),
order: str = "desc",
userId: int = None
):
return assist_stats.get_top_members(
project_id=project_id,
start_timestamp=startTimestamp,
end_timestamp=endTimestamp,
sort_by=sortyBy,
sort_order=sortOder
sort_by=sort,
sort_order=order,
user_id=userId
)