"""Device API routes.""" import time from flask import Blueprint, jsonify def create_devices_blueprint(server_config): """ Create the devices API blueprint. Args: server_config: Dict with keys: - get_device_registry: Callable returning device registry - require_api_auth: Auth decorator """ bp = Blueprint("api_devices", __name__, url_prefix="/api") get_registry = server_config["get_device_registry"] require_api_auth = server_config["require_api_auth"] @bp.route("/devices") @require_api_auth def list_devices(): registry = get_registry() if registry is None: return jsonify({"error": "Device registry not available", "devices": []}) now = time.time() devices = [] for d in registry.all(): devices.append({ "id": d.id, "ip": d.address[0] if d.address else "unknown", "port": d.address[1] if d.address else 0, "status": d.status, "connected_at": d.connected_at, "last_seen": d.last_seen, "connected_for_seconds": round(now - d.connected_at, 1), "last_seen_ago_seconds": round(now - d.last_seen, 1) }) return jsonify({ "devices": devices, "count": len(devices) }) return bp