Refactor route ID handling; update inventory_item, user, and worklog_entry routes to accept non-integer IDs and improve error handling

This commit is contained in:
Yaro Kasear 2025-06-25 14:14:01 -05:00
parent f2229cdc90
commit 8de21bae9c

View file

@ -239,8 +239,13 @@ def inventory_index():
endpoint='inventory_index'
)
@main.route("/inventory_item/<int:id>", methods=['GET', 'POST'])
@main.route("/inventory_item/<id>", methods=['GET', 'POST'])
def inventory_item(id):
try:
id = int(id)
except ValueError:
return render_template('error.html', title="Bad ID", message="ID must be an integer", endpoint='inventory_item', endpoint_args={'id': -1})
inventory_query = db.session.query(Inventory)
item = eager_load_inventory_relationships(inventory_query).filter(Inventory.id == id).first()
brands = db.session.query(Brand).all()
@ -284,8 +289,13 @@ def list_users():
endpoint='list_users'
)
@main.route("/user/<int:id>")
@main.route("/user/<id>")
def user(id):
try:
id = int(id)
except ValueError:
return render_template('error.html', title='Bad ID', message='ID must be an integer.', endpoint='user', endpoint_args={'id': -1})
users_query = db.session.query(User).order_by(User.first_name, User.last_name)
users = eager_load_user_relationships(users_query).all()
user = next((u for u in users if u.id == id), None)
@ -343,8 +353,13 @@ def list_worklog(page=1):
endpoint='list_worklog'
)
@main.route("/worklog/<int:id>")
@main.route("/worklog/<id>")
def worklog_entry(id):
try:
id = int(id)
except ValueError:
return render_template('error.html', title='Bad ID', message='ID must be an integer.', endpoint='worklog_entry', endpoint_args={'id': -1})
log = eager_load_worklog_relationships(db.session.query(WorkLog)).filter(WorkLog.id == id).first()
user_query = db.session.query(User)
users = eager_load_user_relationships(user_query).all()