| Total Complexity | 3 |
| Total Lines | 20 |
| Duplicated Lines | 0 % |
| Changes | 0 | ||
| 1 | from functools import wraps |
||
| 2 | |||
| 3 | from flask import abort, request |
||
| 4 | from jsonschema import ValidationError, validate |
||
| 5 | |||
| 6 | |||
| 7 | def validate_with_jsonschema(jsonschema: dict): |
||
| 8 | def decorator(fn): |
||
| 9 | @wraps(fn) |
||
| 10 | def wrapper(*args, **kwargs): |
||
| 11 | if request.is_json: |
||
| 12 | try: |
||
| 13 | validate(request.json, jsonschema) |
||
| 14 | except ValidationError: |
||
| 15 | abort(400) |
||
| 16 | |||
| 17 | return fn(*args, **kwargs) |
||
| 18 | return wrapper |
||
| 19 | return decorator |
||
| 20 |