gonets/SRV/api/v1/ip.py

57 lines
2 KiB
Python
Raw Permalink Normal View History

2025-06-09 14:43:25 +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-20 11:22:54 +05:00
2025-06-09 14:43:25 +05:00
@router.post("/check_ip")
async def check_ip_config(data: Dict[str, Any] = Body(...)):
2025-06-20 11:22:54 +05:00
"""Проверяет доступность IP-адреса"""
2025-06-09 14:43:25 +05:00
try:
result = await ip_service.check_ip_config(data)
return result
except Exception as e:
2025-06-20 11:22:54 +05:00
raise HTTPException(
status_code=500,
detail=f"Ошибка проверки IP конфигурации: {str(e)}")
2025-06-09 14:43:25 +05:00
@router.post("/apply_ip")
async def apply_ip_config(data: Dict[str, Any] = Body(...)):
2025-06-20 11:22:54 +05:00
"""Применяет проверенные IP-настройки"""
2025-06-09 14:43:25 +05:00
try:
await ip_service.apply_ip_config(data)
2025-06-20 11:22:54 +05:00
return {
"success":
True,
"message":
f"Настройки сетевого профиля для {data['connection_id']} применены",
}
2025-06-09 14:43:25 +05:00
except ValueError as e:
raise HTTPException(status_code=404, detail=str(e))
except Exception as e:
2025-06-20 11:22:54 +05:00
raise HTTPException(
status_code=500,
detail=f"Ошибка проверки IP конфигурации: {str(e)}")
2025-06-09 14:43:25 +05:00
@router.post("/save_ip")
async def save_ip_config(data: Dict[str, Any] = Body(...)):
2025-06-20 11:22:54 +05:00
"""Применяет проверенные IP-настройки (Нужен для того, чтобы откатить настройки сетевого профиля обратно)"""
2025-06-09 14:43:25 +05:00
try:
await ip_service.apply_ip_config(data)
2025-06-20 11:22:54 +05:00
return {
"success":
True,
"message":
f"Настройки сетевого профиля для {data['connection_id']} применены",
}
2025-06-09 14:43:25 +05:00
except ValueError as e:
raise HTTPException(status_code=404, detail=str(e))
except Exception as e:
2025-06-20 11:22:54 +05:00
raise HTTPException(
status_code=500,
detail=f"Ошибка проверки IP конфигурации: {str(e)}")