1010 EmptyParameterValue ,
1111)
1212from openapi_core .schema .schemas .enums import SchemaType
13- from openapi_core .schema .schemas .exceptions import InvalidSchemaValue
13+ from openapi_core .schema .schemas .exceptions import OpenAPISchemaError
1414
1515log = logging .getLogger (__name__ )
1616
@@ -77,12 +77,10 @@ def get_value(self, request):
7777
7878 if self .name not in location :
7979 if self .required :
80- raise MissingRequiredParameter (
81- "Missing required `{0}` parameter" .format (self .name ))
80+ raise MissingRequiredParameter (self .name )
8281
8382 if not self .schema or self .schema .default is None :
84- raise MissingParameter (
85- "Missing `{0}` parameter" .format (self .name ))
83+ raise MissingParameter (self .name )
8684
8785 return self .schema .default
8886
@@ -91,7 +89,7 @@ def get_value(self, request):
9189
9290 return location [self .name ]
9391
94- def unmarshal (self , value ):
92+ def unmarshal (self , value , custom_formatters = None ):
9593 if self .deprecated :
9694 warnings .warn (
9795 "{0} parameter is deprecated" .format (self .name ),
@@ -100,23 +98,22 @@ def unmarshal(self, value):
10098
10199 if (self .location == ParameterLocation .QUERY and value == "" and
102100 not self .allow_empty_value ):
103- raise EmptyParameterValue (
104- "Value of {0} parameter cannot be empty" .format (self .name ))
101+ raise EmptyParameterValue (self .name )
105102
106103 if not self .schema :
107104 return value
108105
109106 try :
110107 deserialized = self .deserialize (value )
111108 except (ValueError , AttributeError ) as exc :
112- raise InvalidParameterValue (str ( exc ) )
109+ raise InvalidParameterValue (self . name , exc )
113110
114111 try :
115- unmarshalled = self .schema .unmarshal (deserialized )
116- except InvalidSchemaValue as exc :
117- raise InvalidParameterValue (str ( exc ) )
112+ unmarshalled = self .schema .unmarshal (deserialized , custom_formatters = custom_formatters )
113+ except OpenAPISchemaError as exc :
114+ raise InvalidParameterValue (self . name , exc )
118115
119116 try :
120- return self .schema .validate (unmarshalled )
121- except InvalidSchemaValue as exc :
122- raise InvalidParameterValue (str ( exc ) )
117+ return self .schema .validate (unmarshalled , custom_formatters = custom_formatters )
118+ except OpenAPISchemaError as exc :
119+ raise InvalidParameterValue (self . name , exc )
0 commit comments