|
1 | 1 | """OpenAPI core validation request shortcuts module""" |
2 | | -import warnings |
| 2 | +from functools import partial |
3 | 3 |
|
4 | | -from openapi_core.validation.request.validators import RequestValidator |
| 4 | +from openapi_core.validation.request.validators import ( |
| 5 | + RequestValidator, |
| 6 | + RequestBodyValidator, |
| 7 | + RequestParametersValidator, |
| 8 | + RequestSecurityValidator, |
| 9 | +) |
5 | 10 |
|
6 | 11 |
|
7 | | -def validate_request(validator, request, failsafe=None): |
8 | | - if failsafe is None: |
9 | | - failsafe = () |
| 12 | +def validate_request(validator, request): |
10 | 13 | result = validator.validate(request) |
11 | | - try: |
12 | | - result.raise_for_errors() |
13 | | - except failsafe: |
14 | | - pass |
| 14 | + result.raise_for_errors() |
15 | 15 | return result |
16 | 16 |
|
17 | 17 |
|
18 | | -def validate_parameters(validator, request): |
19 | | - warnings.warn( |
20 | | - "validate_parameters shortcut is deprecated, " |
21 | | - "use validator.validate instead", |
22 | | - DeprecationWarning, |
23 | | - ) |
24 | | - result = validator._validate_parameters(request) |
25 | | - result.raise_for_errors() |
26 | | - return result |
| 18 | +def spec_validate_request( |
| 19 | + spec, request, request_factory=None, validator_class=RequestValidator, |
| 20 | + result_attribute=None, |
| 21 | +): |
| 22 | + if request_factory is not None: |
| 23 | + request = request_factory(request) |
27 | 24 |
|
| 25 | + validator = validator_class(spec) |
28 | 26 |
|
29 | | -def validate_body(validator, request): |
30 | | - warnings.warn( |
31 | | - "validate_body shortcut is deprecated, " |
32 | | - "use validator.validate instead", |
33 | | - DeprecationWarning, |
34 | | - ) |
35 | | - result = validator._validate_body(request) |
| 27 | + result = validator.validate(request) |
36 | 28 | result.raise_for_errors() |
37 | | - return result |
38 | | - |
39 | 29 |
|
40 | | -def spec_validate_parameters(spec, request, request_factory=None): |
41 | | - if request_factory is not None: |
42 | | - request = request_factory(request) |
| 30 | + if result_attribute is None: |
| 31 | + return result |
| 32 | + return getattr(result, result_attribute) |
43 | 33 |
|
44 | | - validator = RequestValidator(spec) |
45 | | - result = validate_parameters(validator, request) |
46 | 34 |
|
47 | | - return result.parameters |
| 35 | +spec_validate_parameters = partial( |
| 36 | + spec_validate_request, |
| 37 | + validator_class=RequestParametersValidator, result_attribute='parameters') |
48 | 38 |
|
49 | 39 |
|
50 | | -def spec_validate_body(spec, request, request_factory=None): |
51 | | - if request_factory is not None: |
52 | | - request = request_factory(request) |
| 40 | +spec_validate_body = partial( |
| 41 | + spec_validate_request, |
| 42 | + validator_class=RequestBodyValidator, result_attribute='body') |
53 | 43 |
|
54 | | - validator = RequestValidator(spec) |
55 | | - result = validate_body(validator, request) |
56 | 44 |
|
57 | | - return result.body |
| 45 | +spec_validate_security = partial( |
| 46 | + spec_validate_request, |
| 47 | + validator_class=RequestSecurityValidator, result_attribute='security') |
0 commit comments