"""Модуль environment содержит настройки окружения и URL-адресов.
Класс Environment предоставляет методы для работы с окружением,
токенами и URL-адресами API.
"""
import os
from typing import Dict
[документация]
class Environment:
"""Управление окружением, URL-адресами и токенами.
Атрибуты класса:
TEST (str): Константа для тестового окружения.
DEVELOP (str): Константа для dev-окружения.
URLS (Dict[str, str]): Словарь URL для разных окружений.
"""
TEST: str = 'test'
DEVELOP: str = 'develop'
URLS: Dict[str, str] = {
TEST: 'http://192.168.2.76/',
DEVELOP: 'http://192.168.2.69/'
}
[документация]
def __init__(self) -> None:
"""Инициализирует объект окружения и токены."""
try:
self.env: str = os.getenv('ENV', self.TEST)
self.current_user_credential = {}
except KeyError:
self.env: str = self.TEST
[документация]
def get_base_url(self) -> str:
"""Возвращает базовый URL для текущего окружения.
Возвращает:
str: Базовый URL с путем для теста или без него.
"""
if self.env in self.URLS:
# if self.env == self.TEST:
# return self.URLS[self.env] + "e-nms-ui/"
return self.URLS[self.env]
raise Exception(f"Unknown value of ENV variable {self.env}")
[документация]
def get_env_name(self) -> str:
"""Возвращает имя текущего окружения.
Возвращает:
str: имя текущего окружения.
"""
return self.env
[документация]
def get_request_url(self) -> str:
"""Возвращает URL для API-запросов.
Возвращает:
str: URL для API-запросов.
"""
if self.env in self.URLS:
return self.URLS[self.env]
raise Exception(f"Unknown value of ENV variable {self.env}")
[документация]
def set_current_user_credential(self, credential: {}) -> None:
"""Сохраняет учетные данные текущего пользователя.
Аргументы:
credential ({}): Учетные данные текущего пользователя.
"""
self.current_user_credential = credential
[документация]
def get_access_token(self) -> str:
"""Возвращает текущий токен доступа.
Возвращает:
str: Текущий токен доступа.
"""
return self.current_user_credential.get("access_token")
[документация]
def get_current_user_name(self) -> str:
"""Возвращает имя текущего пользователя.
Возвращает:
str: Имя текущего пользователя.
"""
return self.current_user_credential.get("login")
[документация]
def get_current_user_role(self) -> str:
"""Возвращает роль текущего пользователя.
Возвращает:
str: Роль текущего пользователя.
"""
return self.current_user_credential.get("role")
[документация]
def get_current_user_id(self) -> str:
"""Возвращает id текущего пользователя.
Возвращает:
str: id текущего пользователя.
"""
return self.current_user_credential.get("$id")
[документация]
def get_current_user_credential(self) -> {}:
"""Возвращает учетные данные текущего пользователя."""
return self.current_user_credential
host: Environment = Environment()