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 |