2323from aws_lambda_powertools .event_handler .openapi .params import Param
2424
2525if TYPE_CHECKING :
26+ from pydantic .fields import FieldInfo
27+
2628 from aws_lambda_powertools .event_handler import Response
2729 from aws_lambda_powertools .event_handler .api_gateway import Route
2830 from aws_lambda_powertools .event_handler .middlewares import NextMiddleware
@@ -465,9 +467,9 @@ def _normalize_multi_params(
465467def _process_scalar_param (input_dict : MutableMapping [str , Any ], param : ModelField ) -> None :
466468 """Process a scalar parameter by normalizing single-item lists."""
467469 try :
468- val = input_dict [param .alias ]
469- if isinstance (val , list ) and len (val ) == 1 :
470- input_dict [param .alias ] = val [0 ]
470+ value = input_dict [param .alias ]
471+ if isinstance (value , list ) and len (value ) == 1 :
472+ input_dict [param .alias ] = value [0 ]
471473 except KeyError :
472474 pass
473475
@@ -477,12 +479,12 @@ def _process_model_param(input_dict: MutableMapping[str, Any], param: ModelField
477479 model_class = cast (type [BaseModel ], param .field_info .annotation )
478480
479481 model_data = {}
480- for field_name , field_def in model_class .model_fields .items ():
481- field_alias = field_def .alias or field_name
482+ for field_name , field_info in model_class .model_fields .items ():
483+ field_alias = field_info .alias or field_name
482484 value = _get_param_value (input_dict , field_alias , field_name , model_class )
483485
484486 if value is not None :
485- model_data [field_alias ] = _normalize_field_value (value , field_def )
487+ model_data [field_alias ] = _normalize_field_value_model_param (value , field_info )
486488
487489 input_dict [param .alias ] = model_data
488490
@@ -504,9 +506,9 @@ def _get_param_value(
504506 return value
505507
506508
507- def _normalize_field_value (value : Any , field_def : Any ) -> Any :
509+ def _normalize_field_value_model_param (value : Any , field_info : FieldInfo ) -> Any :
508510 """Normalize field value based on its type annotation."""
509- if get_origin (field_def .annotation ) is list :
511+ if get_origin (field_info .annotation ) is list :
510512 return value
511513 elif isinstance (value , list ) and value :
512514 return value [0 ]
0 commit comments