11import logging
22from typing import List
33
4- from . import SchemaFactory
54from .common import extract_typed_props , PropertyMeta , extract_extension_attributes
5+ from .content import ContentBuilder
6+ from .schema import SchemaFactory
67from ..enumeration import ParameterLocation , HeaderParameterStyle , PathParameterStyle , QueryParameterStyle , \
78 CookieParameterStyle
89from ..specification import Parameter
2627
2728class ParameterBuilder :
2829 schema_factory : SchemaFactory
30+ content_builder : ContentBuilder
2931
30- def __init__ (self , schema_factory : SchemaFactory ) -> None :
32+ def __init__ (self , schema_factory : SchemaFactory , content_builder : ContentBuilder ) -> None :
3133 self .schema_factory = schema_factory
34+ self .content_builder = content_builder
3235
3336 def build_list (self , parameters : List [dict ]) -> list [Parameter ]:
3437 return [self .build (parameter ) for parameter in parameters ]
@@ -41,6 +44,7 @@ def build(self, data: dict) -> Parameter:
4144 "location" : PropertyMeta (name = "in" , cast = ParameterLocation ),
4245 "required" : PropertyMeta (name = "required" , cast = None ),
4346 "schema" : PropertyMeta (name = "schema" , cast = self .schema_factory .create ),
47+ "content" : PropertyMeta (name = "content" , cast = self .content_builder .build_list ),
4448 "description" : PropertyMeta (name = "description" , cast = str ),
4549 "deprecated" : PropertyMeta (name = "deprecated" , cast = None ),
4650 "explode" : PropertyMeta (name = "explode" , cast = None ),
0 commit comments