55from models_library .api_schemas_webserver .auth import ApiKeyCreate , ApiKeyGet
66from models_library .products import ProductName
77from models_library .users import UserID
8+ from pydantic import TypeAdapter
89from servicelib .rabbitmq import RPCRouter
10+ from simcore_service_webserver .api_keys ._models import ApiKey
911from simcore_service_webserver .api_keys .errors import ApiKeyNotFoundError
1012
1113from ..rabbitmq import get_rabbitmq_rpc_server
@@ -22,14 +24,16 @@ async def create_api_key(
2224 product_name : ProductName ,
2325 api_key : ApiKeyCreate ,
2426) -> ApiKeyGet :
25- return await _api .create_api_key (
27+ created_api_key : ApiKey = await _api .create_api_key (
2628 app ,
2729 user_id = user_id ,
2830 product_name = product_name ,
2931 display_name = api_key .display_name ,
3032 expiration = api_key .expiration ,
3133 )
3234
35+ return TypeAdapter (ApiKeyGet ).validate_python (created_api_key )
36+
3337
3438@router .expose (reraise_if_error_type = (ApiKeyNotFoundError ,))
3539async def get_api_key (
@@ -38,13 +42,14 @@ async def get_api_key(
3842 user_id : UserID ,
3943 product_name : ProductName ,
4044 api_key_id : int ,
41- ) -> ApiKeyGet | None :
42- return await _api .get_api_key (
45+ ) -> ApiKeyGet :
46+ api_key : ApiKey = await _api .get_api_key (
4347 app ,
4448 user_id = user_id ,
4549 product_name = product_name ,
4650 api_key_id = api_key_id ,
4751 )
52+ return TypeAdapter (ApiKeyGet ).validate_python (api_key )
4853
4954
5055@router .expose ()
@@ -56,13 +61,14 @@ async def get_or_create_api_key(
5661 display_name : str ,
5762 expiration : timedelta | None = None ,
5863) -> ApiKeyGet :
59- return await _api .get_or_create_api_key (
64+ api_key : ApiKey = await _api .get_or_create_api_key (
6065 app ,
6166 user_id = user_id ,
6267 product_name = product_name ,
6368 display_name = display_name ,
6469 expiration = expiration ,
6570 )
71+ return TypeAdapter (ApiKeyGet ).validate_python (api_key )
6672
6773
6874@router .expose ()
0 commit comments