gonets/SRV/api/v1/ip.py

57 lines
2 KiB
Python
Raw Normal View History

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(
2025-06-12 16:47:27 +05:00
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 {
2025-06-12 16:47:27 +05:00
"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(
2025-06-12 16:47:27 +05:00
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 {
2025-06-12 16:47:27 +05:00
"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(
2025-06-12 16:47:27 +05:00
status_code=500,
detail=f"Ошибка проверки IP конфигурации: {str(e)}")