dev@locazia: params validation fix

This commit is contained in:
user 2024-03-04 21:17:15 +03:00
parent 7d29d7449f
commit 3d16e344c3
2 changed files with 10 additions and 8 deletions

View File

@ -43,12 +43,13 @@ app.add_route(s_api_v1_blockchain_send_purchase_content_message, "/api/v1/blockc
@app.exception(BaseException) @app.exception(BaseException)
async def s_handle_exception(request, exception): async def s_handle_exception(request, exception):
response_buffer = response.json({"error": "An internal server error occurred"}, status=500) response_buffer = response.json({"error": "An internal server error occurred"}, status=500)
response_buffer = await close_db_session(request, response_buffer)
try: try:
raise exception raise exception
except AssertionError as e:
response_buffer = response.json({"error": str(e)}, status=400)
except BaseException as e: except BaseException as e:
make_log("sanic_exception", f"Exception: {e}" + '\n' + str(traceback.format_exc()), level='error') make_log("sanic_exception", f"Exception: {e}" + '\n' + str(traceback.format_exc()), level='error')
response_buffer = await close_db_session(request, response_buffer)
return response_buffer return response_buffer

View File

@ -5,12 +5,13 @@ from datetime import datetime, timedelta
def valid_royalty_params(royalty_params): def valid_royalty_params(royalty_params):
assert sum([x['value'] for x in royalty_params]) == 10000, "Values of royalties should sum to 10000" assert sum([x['value'] for x in royalty_params]) == 10000, "Values of royalties should sum to 10000"
for field_key, field_value in { for royalty_param in royalty_params:
'address': lambda x: isinstance(x, str), for field_key, field_value in {
'value': lambda x: (isinstance(x, int) and 0 <= x <= 10000) 'address': lambda x: isinstance(x, str),
}.items(): 'value': lambda x: (isinstance(x, int) and 0 <= x <= 10000)
assert field_key in royalty_params, f"No {field_key} provided" }.items():
assert field_value(royalty_params[field_key]), f"Invalid {field_key} provided" assert field_key in royalty_param, f"No {field_key} provided"
assert field_value(royalty_param[field_key]), f"Invalid {field_key} provided"
return True return True