File tree Expand file tree Collapse file tree 2 files changed +13
-8
lines changed
packages/models-library/src/models_library
services/web/server/src/simcore_service_webserver/functions Expand file tree Collapse file tree 2 files changed +13
-8
lines changed Original file line number Diff line number Diff line change 55
66from common_library .errors_classes import OsparcErrorMixin
77from models_library import projects
8+ from models_library .basic_regex import UUID_RE_BASE
9+ from models_library .basic_types import ConstrainedStr
810from models_library .services_types import ServiceKey , ServiceVersion
911from pydantic import BaseModel , Field
1012
@@ -276,12 +278,11 @@ class RegisteredFunctionJobCollectionDB(FunctionJobCollectionDB):
276278 uuid : FunctionJobCollectionID
277279
278280
281+ class FunctionIDString (ConstrainedStr ):
282+ pattern = UUID_RE_BASE
283+
284+
279285class FunctionJobCollectionsListFilters (BaseModel ):
280286 """Filters for listing function job collections"""
281287
282- has_function_id : Annotated [
283- str | None ,
284- Field (
285- description = "Filter by having a function ID in the collection" ,
286- ),
287- ] = None
288+ has_function_id : FunctionIDString | None = None
Original file line number Diff line number Diff line change 2020 RegisteredFunctionJobDB ,
2121)
2222from models_library .rest_pagination import PageMetaInfoLimitOffset
23+ from pydantic import TypeAdapter
2324from simcore_postgres_database .models .funcapi_function_job_collections_table import (
2425 function_job_collections_table ,
2526)
@@ -292,9 +293,12 @@ async def list_function_job_collections(
292293 """
293294
294295 async with transaction_context (get_asyncpg_engine (app ), connection ) as conn :
295- filter_condition = sqlalchemy .sql .true ()
296+ filter_condition : sqlalchemy . sql . ColumnElement = sqlalchemy .sql .true ()
296297
297298 if filters and filters .has_function_id :
299+ function_id = TypeAdapter (FunctionID ).validate_python (
300+ filters .has_function_id
301+ )
298302 subquery = (
299303 function_job_collections_to_function_jobs_table .select ()
300304 .with_only_columns (
@@ -307,7 +311,7 @@ async def list_function_job_collections(
307311 function_job_collections_to_function_jobs_table .c .function_job_uuid
308312 == function_jobs_table .c .uuid ,
309313 )
310- .where (function_jobs_table .c .function_uuid == filters . has_function_id )
314+ .where (function_jobs_table .c .function_uuid == function_id )
311315 )
312316 filter_condition = function_job_collections_table .c .uuid .in_ (subquery )
313317 total_count_result = await conn .scalar (
You can’t perform that action at this time.
0 commit comments