From 71ce983bb2ddbd3f59c7713ce13c8626cf54ec70 Mon Sep 17 00:00:00 2001 From: Kraiem Taha Yassine Date: Tue, 12 Mar 2024 12:28:57 +0100 Subject: [PATCH] fix(chalice): transform array-source to single value for sessions-filters (#1943) (cherry picked from commit ee6b22b579b41a212978d45d0a7b1be47a80f7b0) --- api/schemas/schemas.py | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/api/schemas/schemas.py b/api/schemas/schemas.py index 622f194e5..c86dc6a37 100644 --- a/api/schemas/schemas.py +++ b/api/schemas/schemas.py @@ -665,6 +665,18 @@ class SessionSearchFilterSchema(BaseModel): _transform = model_validator(mode='before')(transform_old_filter_type) _single_to_list_values = field_validator('value', mode='before')(single_to_list) + @model_validator(mode='before') + def _transform_data(cls, values): + if values.get("source") is not None: + if isinstance(values["source"], list): + if len(values["source"]) == 0: + values["source"] = None + elif len(values["source"]) == 1: + values["source"] = values["source"][0] + else: + raise ValueError(f"Unsupported multi-values source") + return values + @model_validator(mode='after') def filter_validator(cls, values): if values.type == FilterType.metadata: