Skip to content

Commit ef271f7

Browse files
committed
Add context manager to catch validation error in function rest
1 parent 9abff15 commit ef271f7

File tree

1 file changed

+12
-4
lines changed

1 file changed

+12
-4
lines changed

services/web/server/src/simcore_service_webserver/functions/_controller/_functions_rest.py

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,10 @@
77
RegisteredFunctionGet,
88
)
99
from pydantic import TypeAdapter
10-
from servicelib.aiohttp.requests_validation import parse_request_path_parameters_as
10+
from servicelib.aiohttp.requests_validation import (
11+
handle_validation_as_http_error,
12+
parse_request_path_parameters_as,
13+
)
1114
from simcore_service_webserver.utils_aiohttp import envelope_json_response
1215

1316
from ..._meta import API_VTAG as VTAG
@@ -21,9 +24,14 @@
2124
@routes.post(f"/{VTAG}/functions", name="register_function")
2225
@handle_rest_requests_exceptions
2326
async def register_function(request: web.Request) -> web.Response:
24-
function_to_register: FunctionToRegister = TypeAdapter(
25-
FunctionToRegister
26-
).validate_python(await request.json())
27+
with handle_validation_as_http_error(
28+
error_msg_template="Invalid parameter/s '{failed}' in request path",
29+
resource_name=request.rel_url.path,
30+
use_error_v1=True,
31+
):
32+
function_to_register: FunctionToRegister = TypeAdapter(
33+
FunctionToRegister
34+
).validate_python(await request.json())
2735

2836
registered_function: RegisteredFunction = (
2937
await _functions_service.register_function(

0 commit comments

Comments
 (0)