From 197c7fc8d8a6194768a162f6285e1fe64a8806ff Mon Sep 17 00:00:00 2001 From: Taha Yassine Kraiem Date: Tue, 10 Jan 2023 17:17:31 +0100 Subject: [PATCH] feat(chalice): changed empty insights categories handling --- ee/api/chalicelib/core/sessions_insights.py | 4 ++++ ee/api/schemas_ee.py | 23 +-------------------- 2 files changed, 5 insertions(+), 22 deletions(-) diff --git a/ee/api/chalicelib/core/sessions_insights.py b/ee/api/chalicelib/core/sessions_insights.py index 12ec73215..7d037224c 100644 --- a/ee/api/chalicelib/core/sessions_insights.py +++ b/ee/api/chalicelib/core/sessions_insights.py @@ -308,6 +308,10 @@ def query_click_rage_by_period(project_id, start_time, end_time, conn=None): def fetch_selected(project_id, data: schemas_ee.GetInsightsSchema): output = {} + if data.categories is None or len(data.categories) == 0: + data.categories = [] + for v in schemas_ee.InsightCategories: + data.categories.append(v) with ch_client.ClickHouseClient() as conn: if schemas_ee.InsightCategories.errors in data.categories: output[schemas_ee.InsightCategories.errors] = query_most_errors_by_period(project_id=project_id, diff --git a/ee/api/schemas_ee.py b/ee/api/schemas_ee.py index e226c68bb..ed785dcb2 100644 --- a/ee/api/schemas_ee.py +++ b/ee/api/schemas_ee.py @@ -51,17 +51,7 @@ class GetInsightsSchema(BaseModel): startTimestamp: int = Field(TimeUTC.now(-7)) endTimestamp: int = Field(TimeUTC.now()) # time_step: int = Field(default=3600) - categories: List[InsightCategories] = Field(..., min_items=1) - - # This is used to handle wrong values sent by the UI - @root_validator(pre=True) - def transform(cls, values): - if values.get("categories") is None or len(values.get("categories")) == 0: - values["categories"] = [] - for v in InsightCategories: - values["categories"].append(v.value) - - return values + categories: List[InsightCategories] = Field(...) class Config: alias_generator = schemas.attribute_to_camel_case @@ -163,17 +153,6 @@ class CreateCardSchema(schemas.CreateCardSchema): def restrictions(cls, values): return values - # This is used to handle wrong values sent by the UI - @root_validator(pre=True) - def transform_ee(cls, values): - if values.get("metricType") == schemas.MetricType.insights and ( - values.get("metricValue") is None or len(values.get("metricValue")) == 0): - values["metricValue"] = [] - for v in InsightCategories: - values["metricValue"].append(v.value) - - return values - @root_validator def validator(cls, values): values = super().validator(values)