Skip to content

Commit 7b87cf9

Browse files
committed
Move value getters out of schema models
1 parent faa8164 commit 7b87cf9

File tree

5 files changed

+30
-41
lines changed

5 files changed

+30
-41
lines changed

openapi_core/schema/parameters/models.py

Lines changed: 0 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -72,22 +72,6 @@ def deserialize(self, value):
7272
deserializer = self.get_dererializer()
7373
return deserializer(value)
7474

75-
def get_raw_value(self, request):
76-
location = request.parameters[self.location.value]
77-
78-
if self.name not in location:
79-
if self.required:
80-
raise MissingRequiredParameter(self.name)
81-
82-
raise MissingParameter(self.name)
83-
84-
if self.aslist and self.explode:
85-
if hasattr(location, 'getall'):
86-
return location.getall(self.name)
87-
return location.getlist(self.name)
88-
89-
return location[self.name]
90-
9175
def deserialise(self, value):
9276
if self.deprecated:
9377
warnings.warn(
@@ -103,12 +87,3 @@ def deserialise(self, value):
10387
return self.deserialize(value)
10488
except (ValueError, AttributeError) as exc:
10589
raise InvalidParameterValue(self.name, exc)
106-
107-
def cast(self, value):
108-
if not self.schema:
109-
return value
110-
111-
try:
112-
return self.schema.cast(value)
113-
except CastError as exc:
114-
raise InvalidParameterValue(self.name, exc)

openapi_core/schema/request_bodies/models.py

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22
from openapi_core.schema.content.exceptions import MimeTypeNotFound
33
from openapi_core.schema.content.models import Content
44
from openapi_core.schema.media_types.exceptions import InvalidContentType
5-
from openapi_core.schema.request_bodies.exceptions import MissingRequestBody
65

76

87
class RequestBody(object):
@@ -17,8 +16,3 @@ def __getitem__(self, mimetype):
1716
return self.content[mimetype]
1817
except MimeTypeNotFound:
1918
raise InvalidContentType(mimetype)
20-
21-
def get_value(self, request):
22-
if not request.body and self.required:
23-
raise MissingRequestBody(request)
24-
return request.body

openapi_core/schema/responses/models.py

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22
from openapi_core.schema.content.exceptions import MimeTypeNotFound
33
from openapi_core.schema.content.models import Content
44
from openapi_core.schema.media_types.exceptions import InvalidContentType
5-
from openapi_core.schema.responses.exceptions import MissingResponseContent
65

76

87
class Response(object):
@@ -24,9 +23,3 @@ def get_content_type(self, mimetype):
2423
return self.content[mimetype]
2524
except MimeTypeNotFound:
2625
raise InvalidContentType(mimetype)
27-
28-
def get_value(self, response):
29-
if not response.data:
30-
raise MissingResponseContent(response)
31-
32-
return response.data

openapi_core/validation/request/validators.py

Lines changed: 23 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,7 @@ def _get_parameters(self, request, params):
100100
continue
101101
seen.add((param_name, param.location.value))
102102
try:
103-
raw_value = param.get_raw_value(request)
103+
raw_value = self._get_parameter_value(param, request)
104104
except MissingRequiredParameter as exc:
105105
errors.append(exc)
106106
continue
@@ -141,7 +141,7 @@ def _get_body(self, request, operation):
141141
return None, [exc, ]
142142

143143
try:
144-
raw_body = operation.request_body.get_value(request)
144+
raw_body = self._get_body_value(operation.request_body, request)
145145
except MissingRequestBody as exc:
146146
return None, [exc, ]
147147

@@ -162,6 +162,27 @@ def _get_body(self, request, operation):
162162

163163
return body, []
164164

165+
def _get_parameter_value(self, param, request):
166+
location = request.parameters[param.location.value]
167+
168+
if param.name not in location:
169+
if param.required:
170+
raise MissingRequiredParameter(param.name)
171+
172+
raise MissingParameter(param.name)
173+
174+
if param.aslist and param.explode:
175+
if hasattr(location, 'getall'):
176+
return location.getall(param.name)
177+
return location.getlist(param.name)
178+
179+
return location[param.name]
180+
181+
def _get_body_value(self, request_body, request):
182+
if not request.body and request_body.required:
183+
raise MissingRequestBody(request)
184+
return request.body
185+
165186
def _deserialise(self, param_or_media_type, value):
166187
return param_or_media_type.deserialise(value)
167188

openapi_core/validation/response/validators.py

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ def _get_data(self, response, operation_response):
7474
return None, [exc, ]
7575

7676
try:
77-
raw_data = operation_response.get_value(response)
77+
raw_data = self._get_data_value(response)
7878
except MissingResponseContent as exc:
7979
return None, [exc, ]
8080

@@ -103,6 +103,12 @@ def _get_headers(self, response, operation_response):
103103

104104
return headers, errors
105105

106+
def _get_data_value(self, response):
107+
if not response.data:
108+
raise MissingResponseContent(response)
109+
110+
return response.data
111+
106112
def _deserialise(self, param_or_media_type, value):
107113
return param_or_media_type.deserialise(value)
108114

0 commit comments

Comments
 (0)