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:
parent
f2229cdc90
commit
8de21bae9c
1 changed files with 18 additions and 3 deletions
21
routes.py
21
routes.py
|
@ -239,8 +239,13 @@ def inventory_index():
|
||||||
endpoint='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):
|
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)
|
inventory_query = db.session.query(Inventory)
|
||||||
item = eager_load_inventory_relationships(inventory_query).filter(Inventory.id == id).first()
|
item = eager_load_inventory_relationships(inventory_query).filter(Inventory.id == id).first()
|
||||||
brands = db.session.query(Brand).all()
|
brands = db.session.query(Brand).all()
|
||||||
|
@ -284,8 +289,13 @@ def list_users():
|
||||||
endpoint='list_users'
|
endpoint='list_users'
|
||||||
)
|
)
|
||||||
|
|
||||||
@main.route("/user/<int:id>")
|
@main.route("/user/<id>")
|
||||||
def 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_query = db.session.query(User).order_by(User.first_name, User.last_name)
|
||||||
users = eager_load_user_relationships(users_query).all()
|
users = eager_load_user_relationships(users_query).all()
|
||||||
user = next((u for u in users if u.id == id), None)
|
user = next((u for u in users if u.id == id), None)
|
||||||
|
@ -343,8 +353,13 @@ def list_worklog(page=1):
|
||||||
endpoint='list_worklog'
|
endpoint='list_worklog'
|
||||||
)
|
)
|
||||||
|
|
||||||
@main.route("/worklog/<int:id>")
|
@main.route("/worklog/<id>")
|
||||||
def worklog_entry(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()
|
log = eager_load_worklog_relationships(db.session.query(WorkLog)).filter(WorkLog.id == id).first()
|
||||||
user_query = db.session.query(User)
|
user_query = db.session.query(User)
|
||||||
users = eager_load_user_relationships(user_query).all()
|
users = eager_load_user_relationships(user_query).all()
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue