115 lines
3.7 KiB
Python
115 lines
3.7 KiB
Python
"""Модуль 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()
|