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