1
1
import logging
2
2
from typing import List
3
3
4
- from . import SchemaFactory
5
4
from .common import extract_typed_props , PropertyMeta , extract_extension_attributes
5
+ from .content import ContentBuilder
6
+ from .schema import SchemaFactory
6
7
from ..enumeration import ParameterLocation , HeaderParameterStyle , PathParameterStyle , QueryParameterStyle , \
7
8
CookieParameterStyle
8
9
from ..specification import Parameter
26
27
27
28
class ParameterBuilder :
28
29
schema_factory : SchemaFactory
30
+ content_builder : ContentBuilder
29
31
30
- def __init__ (self , schema_factory : SchemaFactory ) -> None :
32
+ def __init__ (self , schema_factory : SchemaFactory , content_builder : ContentBuilder ) -> None :
31
33
self .schema_factory = schema_factory
34
+ self .content_builder = content_builder
32
35
33
36
def build_list (self , parameters : List [dict ]) -> list [Parameter ]:
34
37
return [self .build (parameter ) for parameter in parameters ]
@@ -41,6 +44,7 @@ def build(self, data: dict) -> Parameter:
41
44
"location" : PropertyMeta (name = "in" , cast = ParameterLocation ),
42
45
"required" : PropertyMeta (name = "required" , cast = None ),
43
46
"schema" : PropertyMeta (name = "schema" , cast = self .schema_factory .create ),
47
+ "content" : PropertyMeta (name = "content" , cast = self .content_builder .build_list ),
44
48
"description" : PropertyMeta (name = "description" , cast = str ),
45
49
"deprecated" : PropertyMeta (name = "deprecated" , cast = None ),
46
50
"explode" : PropertyMeta (name = "explode" , cast = None ),
0 commit comments