Add search and bulk delete items
This commit is contained in:
@@ -603,6 +603,25 @@ def delete_item(item_id):
|
||||
return jsonify({"deleted": True})
|
||||
|
||||
|
||||
@app.post("/api/items/bulk-delete")
|
||||
@permission_required("delete")
|
||||
def bulk_delete_items():
|
||||
data = request.get_json(silent=True) or {}
|
||||
item_ids = data.get("item_ids", [])
|
||||
if not isinstance(item_ids, list) or not item_ids:
|
||||
return jsonify({"error": "Choose at least one inventory item to remove."}), 400
|
||||
if len(item_ids) > 1000 or any(not isinstance(item_id, int) or isinstance(item_id, bool) for item_id in item_ids):
|
||||
return jsonify({"error": "Choose up to 1,000 valid inventory items to remove."}), 400
|
||||
item_ids = list(set(item_ids))
|
||||
placeholders = ", ".join("?" for _ in item_ids)
|
||||
with get_db() as connection:
|
||||
images = connection.execute(f"SELECT filename FROM inventory_images WHERE item_id IN ({placeholders})", item_ids).fetchall()
|
||||
result = connection.execute(f"DELETE FROM inventory_items WHERE id IN ({placeholders})", item_ids)
|
||||
for image in images:
|
||||
delete_image(image["filename"])
|
||||
return jsonify({"deleted": result.rowcount})
|
||||
|
||||
|
||||
@app.post("/api/items/<int:item_id>/images")
|
||||
@permission_required("write")
|
||||
def add_images(item_id):
|
||||
|
||||
Reference in New Issue
Block a user