Skip to content

Commit 38422ff

Browse files
committed
refactor: simplify query parameter handling in get_solvers_filters and update descriptions in SolversListFilters
1 parent d8ee4f0 commit 38422ff

File tree

2 files changed

+19
-11
lines changed

2 files changed

+19
-11
lines changed

services/api-server/src/simcore_service_api_server/api/dependencies/models_schemas_solvers_filters.py

Lines changed: 17 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,32 @@
1-
from typing import Annotated
1+
from typing import Annotated, Any
22

33
from fastapi import Query
4+
from pydantic.fields import FieldInfo
45

56
from ...models.schemas.solvers_filters import SolversListFilters
67

78

9+
def _get_query_params(field: FieldInfo) -> dict[str, Any]:
10+
params = {}
11+
12+
if field.description:
13+
params["description"] = field.description
14+
if field.examples:
15+
params["example"] = next(
16+
(example for example in field.examples if "*" in example), field.examples[0]
17+
)
18+
return params
19+
20+
821
def get_solvers_filters(
22+
# pylint: disable=unsubscriptable-object
923
solver_id: Annotated[
1024
str | None,
11-
Query(
12-
description="Filter by solver ID pattern",
13-
example="simcore/services/comp/*",
14-
),
25+
Query(**_get_query_params(SolversListFilters.model_fields["solver_id"])),
1526
] = None,
1627
version_display: Annotated[
1728
str | None,
18-
Query(
19-
description="Filter by version display pattern",
20-
example=["*2023-*"],
21-
),
29+
Query(**_get_query_params(SolversListFilters.model_fields["version_display"])),
2230
] = None,
2331
) -> SolversListFilters:
2432
return SolversListFilters(

services/api-server/src/simcore_service_api_server/models/schemas/solvers_filters.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,15 +9,15 @@ class SolversListFilters(BaseModel):
99
solver_id: Annotated[
1010
str | None,
1111
Field(
12-
description="Filter by solver ID pattern (e.g. 'simcore/services/comp/itis/*')",
12+
description="Filter by solver ID pattern",
1313
examples=["simcore/services/comp/itis/sleeper", "simcore/services/comp/*"],
1414
),
1515
] = None
1616

1717
version_display: Annotated[
1818
str | None,
1919
Field(
20-
description="Filter by version display pattern (e.g. '*2023*')",
20+
description="Filter by version display pattern",
2121
examples=["2.1.1-2023-10-01", "*2023*"],
2222
),
2323
] = None

0 commit comments

Comments
 (0)