feat(api): centralized 'order'
feat(api): transform 'order' casing
This commit is contained in:
parent
f054b130bf
commit
2544a3e166
4 changed files with 17 additions and 7 deletions
|
|
@ -99,10 +99,10 @@ def Build(a):
|
|||
j_s = True
|
||||
if a["seriesId"] is not None:
|
||||
a["filter"]["sort"] = "session_id"
|
||||
a["filter"]["order"] = "DESC"
|
||||
a["filter"]["order"] = schemas.SortOrderType.desc
|
||||
a["filter"]["startDate"] = -1
|
||||
a["filter"]["endDate"] = TimeUTC.now()
|
||||
full_args, query_part= sessions.search_query_parts(
|
||||
full_args, query_part = sessions.search_query_parts(
|
||||
data=schemas.SessionsSearchPayloadSchema.parse_obj(a["filter"]), error_status=None, errors_only=False,
|
||||
issue=None, project_id=a["projectId"], user_id=None, favorite_only=False)
|
||||
subQ = f"""SELECT COUNT(session_id) AS value
|
||||
|
|
|
|||
|
|
@ -463,7 +463,7 @@ def search(data: schemas.SearchErrorsSchema, project_id, user_id, flows=False):
|
|||
sort = __get_sort_key('datetime')
|
||||
if data.sort is not None:
|
||||
sort = __get_sort_key(data.sort)
|
||||
order = "DESC"
|
||||
order = schemas.SortOrderType.desc
|
||||
if data.order is not None:
|
||||
order = data.order
|
||||
extra_join = ""
|
||||
|
|
|
|||
|
|
@ -201,12 +201,12 @@ def search2_pg(data: schemas.SessionsSearchPayloadSchema, project_id, user_id, e
|
|||
elif data.group_by_user:
|
||||
g_sort = "count(full_sessions)"
|
||||
if data.order is None:
|
||||
data.order = "DESC"
|
||||
data.order = schemas.SortOrderType.desc
|
||||
else:
|
||||
data.order = data.order.upper()
|
||||
if data.sort is not None and data.sort != 'sessionsCount':
|
||||
sort = helper.key_to_snake_case(data.sort)
|
||||
g_sort = f"{'MIN' if data.order == 'DESC' else 'MAX'}({sort})"
|
||||
g_sort = f"{'MIN' if data.order == schemas.SortOrderType.desc else 'MAX'}({sort})"
|
||||
else:
|
||||
sort = 'start_ts'
|
||||
|
||||
|
|
@ -230,7 +230,7 @@ def search2_pg(data: schemas.SessionsSearchPayloadSchema, project_id, user_id, e
|
|||
full_args)
|
||||
else:
|
||||
if data.order is None:
|
||||
data.order = "DESC"
|
||||
data.order = schemas.SortOrderType.desc
|
||||
sort = 'session_id'
|
||||
if data.sort is not None and data.sort != "session_id":
|
||||
# sort += " " + data.order + "," + helper.key_to_snake_case(data.sort)
|
||||
|
|
|
|||
|
|
@ -618,17 +618,27 @@ class _PaginatedSchema(BaseModel):
|
|||
page: int = Field(default=1, gt=0)
|
||||
|
||||
|
||||
class SortOrderType(str, Enum):
|
||||
asc = "ASC"
|
||||
desc = "DESC"
|
||||
|
||||
|
||||
class SessionsSearchPayloadSchema(_PaginatedSchema):
|
||||
events: List[_SessionSearchEventSchema] = Field([])
|
||||
filters: List[SessionSearchFilterSchema] = Field([])
|
||||
startDate: int = Field(None)
|
||||
endDate: int = Field(None)
|
||||
sort: str = Field(default="startTs")
|
||||
order: Literal["asc", "desc"] = Field(default="desc")
|
||||
order: Literal[SortOrderType] = Field(default=SortOrderType.desc)
|
||||
events_order: Optional[SearchEventOrder] = Field(default=SearchEventOrder._then)
|
||||
group_by_user: bool = Field(default=False)
|
||||
bookmarked: bool = Field(default=False)
|
||||
|
||||
@root_validator(pre=True)
|
||||
def transform_order(cls, values):
|
||||
if values.get("order") is not None:
|
||||
values["order"] = values["order"].upper()
|
||||
|
||||
class Config:
|
||||
alias_generator = attribute_to_camel_case
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue