From f13afdebca5218fe7a88f79f980c5c3880e6346b Mon Sep 17 00:00:00 2001 From: Lukas Juhrich Date: Fri, 11 Aug 2023 12:57:00 +0200 Subject: [PATCH] [web] extract room checks into `get_room_or_404` --- web/blueprints/facilities/__init__.py | 29 ++++++++++----------------- 1 file changed, 11 insertions(+), 18 deletions(-) diff --git a/web/blueprints/facilities/__init__.py b/web/blueprints/facilities/__init__.py index 6aa25f04c..d2a3bdbb9 100644 --- a/web/blueprints/facilities/__init__.py +++ b/web/blueprints/facilities/__init__.py @@ -219,11 +219,7 @@ def default_response() -> ResponseReturnValue: @bp.route('/room//create', methods=['GET', 'POST']) @access.require('facilities_change') def room_edit(room_id: int) -> ResponseReturnValue: - room = session.session.get(Room, room_id) - - if not room: - flash(f"Raum mit ID {room_id} nicht gefunden!", "error") - return redirect(url_for('.overview')) + room = get_room_or_404(room_id) form = EditRoomForm(building=room.building.short_name, level=room.level, @@ -498,15 +494,18 @@ def default_response() -> ResponseReturnValue: - -@bp.route('/room/', methods=['GET', 'POST']) -def room_show(room_id: int) -> ResponseReturnValue: +def get_room_or_404(room_id: int) -> Room: room = session.session.get(Room, room_id) - if room is None: - flash("Zimmer existiert nicht!", 'error') + flash(f"Raum mit id {room_id} existiert nicht", "error") abort(404) + return room + + +@bp.route('/room/', methods=['GET', 'POST']) +def room_show(room_id: int) -> ResponseReturnValue: + room = get_room_or_404(room_id) form = RoomLogEntry() if form.validate_on_submit(): @@ -542,9 +541,7 @@ def room_show(room_id: int) -> ResponseReturnValue: @bp.route('/room//logs/json') def room_logs_json(room_id: int) -> ResponseReturnValue: - room = session.session.get(Room, room_id) - if room is None: - abort(404) + room = get_room_or_404(room_id) return TableResponse[LogTableRow]( items=[format_room_log_entry(entry) for entry in reversed(room.log_entries)] ).model_dump() @@ -552,11 +549,7 @@ def room_logs_json(room_id: int) -> ResponseReturnValue: @bp.route('/room//patchpanel/json') def room_patchpanel_json(room_id: int) -> ResponseReturnValue: - room = session.session.get(Room, room_id) - - if not room: - abort(404) - + room = get_room_or_404(room_id) if not room.is_switch_room: abort(400)