fix(api): sort order
This commit is contained in:
parent
9ed6a5151e
commit
7f9d91a8d1
2 changed files with 26 additions and 17 deletions
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -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
|
||||
)
|
||||
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue