diff --git a/.fernignore b/.fernignore index 00097be7..3d51d3e2 100644 --- a/.fernignore +++ b/.fernignore @@ -7,4 +7,7 @@ LICENSE.md .github/workflows/semgrep.yml # Files that avoid breaking changes due to renames. -src/merge/resources/accounting/types/currency_enum.py \ No newline at end of file +src/merge/resources/accounting/types/currency_enum.py + +# File that encodes enum query params as comma separated lists by default +src/merge/core/query_encoder.py diff --git a/src/merge/core/query_encoder.py b/src/merge/core/query_encoder.py index 3183001d..559f93d5 100644 --- a/src/merge/core/query_encoder.py +++ b/src/merge/core/query_encoder.py @@ -24,6 +24,9 @@ def traverse_query_dict(dict_flat: Dict[str, Any], key_prefix: Optional[str] = N def single_query_encoder(query_key: str, query_value: Any) -> List[Tuple[str, Any]]: + # Special-case for 'expand' parameter: join lists into a comma-separated string + if query_key == "expand" and isinstance(query_value, list): + return [(query_key, ",".join(str(x) for x in query_value))] if isinstance(query_value, pydantic.BaseModel) or isinstance(query_value, dict): if isinstance(query_value, pydantic.BaseModel): obj_dict = query_value.dict(by_alias=True)