Инициализация интернационализации. Перевод на en, ru для эндпоинтов api/v1
This commit is contained in:
parent
48e8551b0e
commit
9ac52c8a8b
16 changed files with 990 additions and 181 deletions
|
|
@ -1,13 +1,14 @@
|
|||
from typing import Dict, Any
|
||||
from fastapi import APIRouter, Body, HTTPException
|
||||
from fastapi import APIRouter, Body, HTTPException, Depends
|
||||
from services.ip_service import IPService
|
||||
from utils.i18n import get_translations, _
|
||||
from babel.support import Translations
|
||||
|
||||
router = APIRouter()
|
||||
ip_service = IPService()
|
||||
|
||||
|
||||
@router.post("/check_ip")
|
||||
async def check_ip_config(data: Dict[str, Any] = Body(...)):
|
||||
async def check_ip_config(data: Dict[str, Any] = Body(...), translations: Translations = Depends(get_translations("api_v1"))):
|
||||
"""Проверяет доступность IP-адреса перед его применением.
|
||||
|
||||
Выполняет ARP-сканирование для проверки, занят ли указанный IP-адрес,
|
||||
|
|
@ -16,6 +17,7 @@ async def check_ip_config(data: Dict[str, Any] = Body(...)):
|
|||
Args:
|
||||
data (Dict[str, Any]): Словарь с данными конфигурации, включая
|
||||
"ipv4_updates" с полем "ipv4.address-data" для нового IP-адреса.
|
||||
translations: Объект переводов для текущего языка.
|
||||
|
||||
Returns:
|
||||
Dict[str, Any]: Словарь с ключами:
|
||||
|
|
@ -31,11 +33,11 @@ async def check_ip_config(data: Dict[str, Any] = Body(...)):
|
|||
except Exception as e:
|
||||
raise HTTPException(
|
||||
status_code=500,
|
||||
detail=f"Ошибка проверки IP конфигурации: {str(e)}")
|
||||
|
||||
detail=translations.gettext("Ошибка проверки IP конфигурации: {error}").format(error=str(e))
|
||||
)
|
||||
|
||||
@router.post("/apply_ip")
|
||||
async def apply_ip_config(data: Dict[str, Any] = Body(...)):
|
||||
async def apply_ip_config(data: Dict[str, Any] = Body(...), translations: Translations = Depends(get_translations("api_v1"))):
|
||||
"""Применяет проверенные IP-настройки к указанному сетевому профилю.
|
||||
|
||||
Обновляет настройки соединения через NetworkManager, отключает и
|
||||
|
|
@ -44,6 +46,7 @@ async def apply_ip_config(data: Dict[str, Any] = Body(...)):
|
|||
Args:
|
||||
data (Dict[str, Any]): Словарь с данными конфигурации, включая
|
||||
"connection_id" и "ipv4_updates" с обновлениями IP-настроек.
|
||||
translations: Объект переводов для текущего языка.
|
||||
|
||||
Returns:
|
||||
dict: Словарь с ключами:
|
||||
|
|
@ -58,16 +61,20 @@ async def apply_ip_config(data: Dict[str, Any] = Body(...)):
|
|||
await ip_service.apply_ip_config(data)
|
||||
return {
|
||||
"success": True,
|
||||
"message": f"Настройки сетевого профиля для {data['connection_id']} применены",
|
||||
"message": translations.gettext("Настройки сетевого профиля для {connection_id} применены").format(
|
||||
connection_id=data["connection_id"]
|
||||
),
|
||||
}
|
||||
except ValueError as e:
|
||||
raise HTTPException(status_code=404, detail=str(e))
|
||||
raise HTTPException(status_code=404, detail=translations.gettext(str(e)))
|
||||
except Exception as e:
|
||||
raise HTTPException(status_code=500, detail=f"Ошибка проверки IP конфигурации: {str(e)}")
|
||||
|
||||
raise HTTPException(
|
||||
status_code=500,
|
||||
detail=translations.gettext("Ошибка проверки IP конфигурации: {error}").format(error=str(e))
|
||||
)
|
||||
|
||||
@router.post("/save_ip")
|
||||
async def save_ip_config(data: Dict[str, Any] = Body(...)):
|
||||
async def save_ip_config(data: Dict[str, Any] = Body(...), translations: Translations = Depends(get_translations("api_v1"))):
|
||||
"""Применяет проверенные IP-настройки для отката сетевого профиля.
|
||||
|
||||
Используется для сохранения и отката настроек сетевого профиля к предыдущему
|
||||
|
|
@ -76,6 +83,7 @@ async def save_ip_config(data: Dict[str, Any] = Body(...)):
|
|||
Args:
|
||||
data (Dict[str, Any]): Словарь с данными конфигурации, включая
|
||||
"connection_id" и "ipv4_updates" с обновлениями IP-настроек.
|
||||
translations: Объект переводов для текущего языка.
|
||||
|
||||
Returns:
|
||||
dict: Словарь с ключами:
|
||||
|
|
@ -90,9 +98,14 @@ async def save_ip_config(data: Dict[str, Any] = Body(...)):
|
|||
await ip_service.apply_ip_config(data)
|
||||
return {
|
||||
"success": True,
|
||||
"message": f"Настройки сетевого профиля для {data['connection_id']} применены",
|
||||
"message": translations.gettext("Настройки сетевого профиля для {connection_id} применены").format(
|
||||
connection_id=data["connection_id"]
|
||||
),
|
||||
}
|
||||
except ValueError as e:
|
||||
raise HTTPException(status_code=404, detail=str(e))
|
||||
raise HTTPException(status_code=404, detail=translations.gettext(str(e)))
|
||||
except Exception as e:
|
||||
raise HTTPException(status_code=500, detail=f"Ошибка проверки IP конфигурации: {str(e)}")
|
||||
raise HTTPException(
|
||||
status_code=500,
|
||||
detail=translations.gettext("Ошибка проверки IP конфигурации: {error}").format(error=str(e))
|
||||
)
|
||||
Loading…
Add table
Add a link
Reference in a new issue