def safe_delete_loop(loop_id, require_confirmation=True):
"""Safely delete a loop with pre-flight checks"""
# Get loop information first
response = requests.get(f"https://api.hitl.sh/v1/api/loops/{loop_id}", headers=headers)
if response.status_code != 200:
return {"error": True, "msg": "Loop not found or inaccessible"}
loop_data = response.json()["data"]["loop"]
# Check for active members
active_members = loop_data["member_count"] - loop_data["pending_count"]
if active_members > 1: # More than just the creator
print(f"Warning: Loop has {active_members} active members")
# Check for recent activity (optional: get requests)
requests_response = requests.get(f"https://api.hitl.sh/v1/api/loops/{loop_id}/requests", headers=headers)
if requests_response.status_code == 200:
requests_data = requests_response.json()["data"]["requests"]
recent_requests = [r for r in requests_data if r["status"] in ["pending", "claimed"]]
if recent_requests:
print(f"Warning: Loop has {len(recent_requests)} active requests")
# Confirmation
if require_confirmation:
confirmation = input(f"Delete loop '{loop_data['name']}'? This cannot be undone. (yes/no): ")
if confirmation.lower() != 'yes':
return {"error": False, "msg": "Deletion cancelled by user"}
# Proceed with deletion
delete_response = requests.delete(f"https://api.hitl.sh/v1/api/loops/{loop_id}", headers=headers)
return delete_response.json()