Skip to content

Commit 0748952

Browse files
committed
Unify find path method of request validator
1 parent 35da028 commit 0748952

File tree

1 file changed

+11
-11
lines changed

1 file changed

+11
-11
lines changed

openapi_core/validation/request/validators.py

+11-11
Original file line numberDiff line numberDiff line change
@@ -36,8 +36,7 @@ def __init__(
3636

3737
def validate(self, request):
3838
try:
39-
path = self._get_path(request)
40-
operation = self._get_operation(request)
39+
path, operation, _, _, _ = self._find_path(request)
4140
# don't process if operation errors
4241
except (InvalidServer, InvalidPath, InvalidOperation) as exc:
4342
return RequestValidationResult([exc, ], None, None, None)
@@ -61,8 +60,7 @@ def validate(self, request):
6160

6261
def _validate_parameters(self, request):
6362
try:
64-
path = self._get_path(request)
65-
operation = self._get_operation(request)
63+
path, operation, _, _, _ = self._find_path(request)
6664
except (InvalidServer, InvalidPath, InvalidOperation) as exc:
6765
return RequestValidationResult([exc, ], None, None)
6866

@@ -76,7 +74,7 @@ def _validate_parameters(self, request):
7674

7775
def _validate_body(self, request):
7876
try:
79-
operation = self._get_operation(request)
77+
_, operation, _, _, _ = self._find_path(request)
8078
except (InvalidServer, InvalidOperation) as exc:
8179
return RequestValidationResult([exc, ], None, None)
8280

@@ -90,15 +88,17 @@ def _get_operation_pattern(self, request):
9088
server.default_url, request.full_url_pattern
9189
)
9290

93-
def _get_path(self, request):
91+
def _find_path(self, request):
9492
operation_pattern = self._get_operation_pattern(request)
9593

96-
return self.spec[operation_pattern]
94+
path = self.spec[operation_pattern]
95+
path_variables = {}
96+
operation = self.spec.get_operation(operation_pattern, request.method)
97+
servers = path.servers or operation.servers or self.spec.servers
98+
server = servers[0]
99+
server_variables = {}
97100

98-
def _get_operation(self, request):
99-
operation_pattern = self._get_operation_pattern(request)
100-
101-
return self.spec.get_operation(operation_pattern, request.method)
101+
return path, operation, server, path_variables, server_variables
102102

103103
def _get_security(self, request, operation):
104104
security = operation.security or self.spec.security

0 commit comments

Comments
 (0)