"""Модуль 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") host: Environment = Environment()