From aaea8441f66cde8172a8549796da51b40ccce897 Mon Sep 17 00:00:00 2001 From: Max Metz Date: Thu, 12 Sep 2024 10:22:27 +0200 Subject: [PATCH] shifting the ship-id check into the validation object --- src/server/BreCal/api/ships.py | 5 +---- src/server/BreCal/validators/input_validation_ship.py | 9 +++++---- 2 files changed, 6 insertions(+), 8 deletions(-) diff --git a/src/server/BreCal/api/ships.py b/src/server/BreCal/api/ships.py index 157f223..482474b 100644 --- a/src/server/BreCal/api/ships.py +++ b/src/server/BreCal/api/ships.py @@ -100,10 +100,7 @@ def DeleteShip(): # validate the request data & user permissions ship_id = request.args.get("id") - if ship_id is None: - return create_dynamic_exception_response(ex=None, status_code=400, message="no id provided") - - InputValidationShip.evaluate_delete_data(user_data, int(ship_id)) + InputValidationShip.evaluate_delete_data(user_data, ship_id) return impl.ships.DeleteShip(options) except ValidationError as ex: diff --git a/src/server/BreCal/validators/input_validation_ship.py b/src/server/BreCal/validators/input_validation_ship.py index 25362c7..80c6261 100644 --- a/src/server/BreCal/validators/input_validation_ship.py +++ b/src/server/BreCal/validators/input_validation_ship.py @@ -60,7 +60,11 @@ class InputValidationShip(): return @staticmethod - def evaluate_delete_data(user_data:dict, ship_id:int): + def evaluate_delete_data(user_data:dict, ship_id:typing.Optional[int]): + if ship_id is None: + raise ValidationError({"id":f"The ship id must be provided."}) + ship_id = int(ship_id) + # 1.) Only users of type BSMD are allowed to PUT InputValidationShip.check_user_is_bsmd_type(user_data) @@ -129,9 +133,6 @@ class InputValidationShip(): makes sure, that the request contains and ID, has a matching entry in the database, and the database entry may not have a deletion state already. """ - if ship_id is None: - raise ValidationError({"id":f"The ship id must be provided."}) - response, status_code, header = GetShips(token=None) ships = json.loads(response) existing_database_entries = [ship for ship in ships if ship.get("id")==int(ship_id)]