shipcall, ship, times and user verify the validity of JSON data when receiving POST/PUT requests.
This commit is contained in:
parent
e488501837
commit
b60874cbb0
@ -0,0 +1,15 @@
|
||||
|
||||
|
||||
import json
|
||||
import logging
|
||||
from flask import request
|
||||
|
||||
def verify_if_request_is_json(request):
|
||||
"""
|
||||
when a request contains invalid JSON data, this function raises a 400 error (bad request) and returns an error description.
|
||||
this function avoids less precise 500 Internal Server Error messages.
|
||||
"""
|
||||
if request.is_json:
|
||||
# when invalid json data is posted, a JSONDecodeError will be raised
|
||||
json.loads(request.data)
|
||||
return
|
||||
@ -7,6 +7,7 @@ from ..services.auth_guard import auth_guard, check_jwt
|
||||
from BreCal.validators.input_validation import validate_posted_shipcall_data, check_if_user_is_bsmd_type
|
||||
from BreCal.validators.input_validation_shipcall import InputValidationShipcall
|
||||
from BreCal.database.sql_handler import execute_sql_query_standalone
|
||||
from . import verify_if_request_is_json
|
||||
|
||||
import logging
|
||||
import json
|
||||
@ -43,6 +44,8 @@ def GetShipcalls():
|
||||
def PostShipcalls():
|
||||
|
||||
try:
|
||||
verify_if_request_is_json(request)
|
||||
|
||||
content = request.get_json(force=True)
|
||||
loadedModel = model.ShipcallSchema().load(data=content, many=False, partial=True)
|
||||
|
||||
@ -71,6 +74,8 @@ def PostShipcalls():
|
||||
def PutShipcalls():
|
||||
|
||||
try:
|
||||
verify_if_request_is_json(request)
|
||||
|
||||
content = request.get_json(force=True)
|
||||
loadedModel = model.ShipcallSchema().load(data=content, many=False, partial=True)
|
||||
|
||||
|
||||
@ -5,6 +5,7 @@ from marshmallow import EXCLUDE, ValidationError
|
||||
from ..schemas import model
|
||||
import json
|
||||
import logging
|
||||
from . import verify_if_request_is_json
|
||||
|
||||
from BreCal.validators.input_validation import check_if_user_is_bsmd_type
|
||||
from BreCal.validators.input_validation_ship import InputValidationShip
|
||||
@ -27,6 +28,8 @@ def GetShips():
|
||||
def PostShip():
|
||||
|
||||
try:
|
||||
verify_if_request_is_json(request)
|
||||
|
||||
# read the user data from the JWT token (set when login is performed)
|
||||
user_data = check_jwt()
|
||||
|
||||
@ -55,6 +58,8 @@ def PostShip():
|
||||
def PutShip():
|
||||
|
||||
try:
|
||||
verify_if_request_is_json(request)
|
||||
|
||||
# read the user data from the JWT token (set when login is performed)
|
||||
user_data = check_jwt()
|
||||
|
||||
@ -77,6 +82,8 @@ def PutShip():
|
||||
def DeleteShip():
|
||||
|
||||
try:
|
||||
verify_if_request_is_json(request)
|
||||
|
||||
# read the user data from the JWT token (set when login is performed)
|
||||
user_data = check_jwt()
|
||||
ship_id = request.args.get("id")
|
||||
|
||||
@ -6,6 +6,7 @@ import json
|
||||
import logging
|
||||
from marshmallow import ValidationError
|
||||
from BreCal.validators.input_validation_times import InputValidationTimes
|
||||
from . import verify_if_request_is_json
|
||||
|
||||
bp = Blueprint('times', __name__)
|
||||
|
||||
@ -25,6 +26,8 @@ def GetTimes():
|
||||
def PostTimes():
|
||||
|
||||
try:
|
||||
verify_if_request_is_json(request)
|
||||
|
||||
# print (request.is_json)
|
||||
content = request.get_json(force=True) # force gets us json even if the content-type was wrong
|
||||
|
||||
@ -56,6 +59,8 @@ def PostTimes():
|
||||
def PutTimes():
|
||||
|
||||
try:
|
||||
verify_if_request_is_json(request)
|
||||
|
||||
content = request.get_json(force=True)
|
||||
loadedModel = model.TimesSchema().load(data=content, many=False, partial=True)
|
||||
|
||||
|
||||
@ -5,6 +5,7 @@ from ..services.auth_guard import auth_guard
|
||||
import json
|
||||
import logging
|
||||
from marshmallow import ValidationError
|
||||
from . import verify_if_request_is_json
|
||||
|
||||
bp = Blueprint('user', __name__)
|
||||
|
||||
@ -13,6 +14,8 @@ bp = Blueprint('user', __name__)
|
||||
def PutUser():
|
||||
|
||||
try:
|
||||
verify_if_request_is_json(request)
|
||||
|
||||
content = request.get_json(force=True)
|
||||
loadedModel = model.UserSchema().load(data=content, many=False, partial=True)
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user