fix(api): removed extra conditions which has empty filters

This commit is contained in:
Shekar Siri 2025-04-07 12:42:15 +02:00
parent d95cfd9ff6
commit 5ec3855491
2 changed files with 56 additions and 56 deletions

View file

@ -305,37 +305,37 @@ def search2_table(data: schemas.SessionsSearchPayloadSchema, project_id: int, de
if metric_of == schemas.MetricOfTable.VISITED_URL: if metric_of == schemas.MetricOfTable.VISITED_URL:
extra_event = "events.pages" extra_event = "events.pages"
extra_conditions = {} extra_conditions = {}
for e in data.events: # for e in data.events:
if e.type == schemas.EventType.LOCATION: # if e.type == schemas.EventType.LOCATION:
if e.operator not in extra_conditions: # if e.operator not in extra_conditions:
extra_conditions[e.operator] = schemas.SessionSearchEventSchema2.model_validate({ # extra_conditions[e.operator] = schemas.SessionSearchEventSchema2.model_validate({
"type": e.type, # "type": e.type,
"isEvent": True, # "isEvent": True,
"value": [], # "value": [],
"operator": e.operator, # "operator": e.operator,
"filters": [] # "filters": []
}) # })
for v in e.value: # for v in e.value:
if v not in extra_conditions[e.operator].value: # if v not in extra_conditions[e.operator].value:
extra_conditions[e.operator].value.append(v) # extra_conditions[e.operator].value.append(v)
extra_conditions = list(extra_conditions.values()) # extra_conditions = list(extra_conditions.values())
elif metric_of == schemas.MetricOfTable.FETCH: elif metric_of == schemas.MetricOfTable.FETCH:
extra_event = "events_common.requests" extra_event = "events_common.requests"
extra_conditions = {} extra_conditions = {}
for e in data.events: # for e in data.events:
if e.type == schemas.EventType.REQUEST_DETAILS: # if e.type == schemas.EventType.REQUEST_DETAILS:
if e.operator not in extra_conditions: # if e.operator not in extra_conditions:
extra_conditions[e.operator] = schemas.SessionSearchEventSchema2.model_validate({ # extra_conditions[e.operator] = schemas.SessionSearchEventSchema2.model_validate({
"type": e.type, # "type": e.type,
"isEvent": True, # "isEvent": True,
"value": [], # "value": [],
"operator": e.operator, # "operator": e.operator,
"filters": [] # "filters": []
}) # })
for v in e.value: # for v in e.value:
if v not in extra_conditions[e.operator].value: # if v not in extra_conditions[e.operator].value:
extra_conditions[e.operator].value.append(v) # extra_conditions[e.operator].value.append(v)
extra_conditions = list(extra_conditions.values()) # extra_conditions = list(extra_conditions.values())
elif metric_of == schemas.MetricOfTable.ISSUES and len(metric_value) > 0: elif metric_of == schemas.MetricOfTable.ISSUES and len(metric_value) > 0:
data.filters.append(schemas.SessionSearchFilterSchema(value=metric_value, type=schemas.FilterType.ISSUE, data.filters.append(schemas.SessionSearchFilterSchema(value=metric_value, type=schemas.FilterType.ISSUE,
operator=schemas.SearchEventOperator.IS)) operator=schemas.SearchEventOperator.IS))

View file

@ -355,20 +355,20 @@ def search2_table(data: schemas.SessionsSearchPayloadSchema, project_id: int, de
AND ev.event_type = 'LOCATION'""" AND ev.event_type = 'LOCATION'"""
extra_deduplication.append("url_path") extra_deduplication.append("url_path")
extra_conditions = {} extra_conditions = {}
for e in data.events: # for e in data.events:
if e.type == schemas.EventType.LOCATION: # if e.type == schemas.EventType.LOCATION:
if e.operator not in extra_conditions: # if e.operator not in extra_conditions:
extra_conditions[e.operator] = schemas.SessionSearchEventSchema2.model_validate({ # extra_conditions[e.operator] = schemas.SessionSearchEventSchema2.model_validate({
"type": e.type, # "type": e.type,
"isEvent": True, # "isEvent": True,
"value": [], # "value": [],
"operator": e.operator, # "operator": e.operator,
"filters": [] # "filters": []
}) # })
for v in e.value: # for v in e.value:
if v not in extra_conditions[e.operator].value: # if v not in extra_conditions[e.operator].value:
extra_conditions[e.operator].value.append(v) # extra_conditions[e.operator].value.append(v)
extra_conditions = list(extra_conditions.values()) # extra_conditions = list(extra_conditions.values())
elif metric_of == schemas.MetricOfTable.FETCH: elif metric_of == schemas.MetricOfTable.FETCH:
extra_event = f"""SELECT DISTINCT ev.session_id, ev.url_path extra_event = f"""SELECT DISTINCT ev.session_id, ev.url_path
FROM {exp_ch_helper.get_main_events_table(data.startTimestamp)} AS ev FROM {exp_ch_helper.get_main_events_table(data.startTimestamp)} AS ev
@ -378,20 +378,20 @@ def search2_table(data: schemas.SessionsSearchPayloadSchema, project_id: int, de
AND ev.event_type = 'REQUEST'""" AND ev.event_type = 'REQUEST'"""
extra_deduplication.append("url_path") extra_deduplication.append("url_path")
extra_conditions = {} extra_conditions = {}
for e in data.events: # for e in data.events:
if e.type == schemas.EventType.REQUEST_DETAILS: # if e.type == schemas.EventType.REQUEST_DETAILS:
if e.operator not in extra_conditions: # if e.operator not in extra_conditions:
extra_conditions[e.operator] = schemas.SessionSearchEventSchema2.model_validate({ # extra_conditions[e.operator] = schemas.SessionSearchEventSchema2.model_validate({
"type": e.type, # "type": e.type,
"isEvent": True, # "isEvent": True,
"value": [], # "value": [],
"operator": e.operator, # "operator": e.operator,
"filters": [] # "filters": []
}) # })
for v in e.value: # for v in e.value:
if v not in extra_conditions[e.operator].value: # if v not in extra_conditions[e.operator].value:
extra_conditions[e.operator].value.append(v) # extra_conditions[e.operator].value.append(v)
extra_conditions = list(extra_conditions.values()) # extra_conditions = list(extra_conditions.values())
elif metric_of == schemas.MetricOfTable.ISSUES and len(metric_value) > 0: elif metric_of == schemas.MetricOfTable.ISSUES and len(metric_value) > 0:
data.filters.append(schemas.SessionSearchFilterSchema(value=metric_value, type=schemas.FilterType.ISSUE, data.filters.append(schemas.SessionSearchFilterSchema(value=metric_value, type=schemas.FilterType.ISSUE,