from typing import Dict, Any from fastapi import APIRouter, Body, HTTPException from services.ip_service import IPService router = APIRouter() ip_service = IPService() @router.post("/check_ip") async def check_ip_config(data: Dict[str, Any] = Body(...)): """Проверяет доступность IP-адреса""" try: result = await ip_service.check_ip_config(data) return result except Exception as e: raise HTTPException( status_code=500, detail=f"Ошибка проверки IP конфигурации: {str(e)}" ) @router.post("/apply_ip") async def apply_ip_config(data: Dict[str, Any] = Body(...)): """Применяет проверенные IP-настройки""" try: await ip_service.apply_ip_config(data) return { "success": True, "message": f"Настройки сетевого профиля для {data['connection_id']} применены", } except ValueError as e: raise HTTPException(status_code=404, detail=str(e)) except Exception as e: raise HTTPException( status_code=500, detail=f"Ошибка проверки IP конфигурации: {str(e)}" ) @router.post("/save_ip") async def save_ip_config(data: Dict[str, Any] = Body(...)): """Применяет проверенные IP-настройки (Нужен для того, чтобы откатить настройки сетевого профиля обратно)""" try: await ip_service.apply_ip_config(data) return { "success": True, "message": f"Настройки сетевого профиля для {data['connection_id']} применены", } except ValueError as e: raise HTTPException(status_code=404, detail=str(e)) except Exception as e: raise HTTPException( status_code=500, detail=f"Ошибка проверки IP конфигурации: {str(e)}" )