From e3359229ecd61d9a73173b4914a8e23e2472a58f Mon Sep 17 00:00:00 2001 From: David Rodenkirchen Date: Wed, 28 Aug 2024 22:16:15 +0200 Subject: [PATCH] implement devmode --- config/config.example.toml | 2 ++ src/ez_lan_manager/__init__.py | 2 +- .../services/ConfigurationService.py | 4 ++++ src/ez_lan_manager/services/MailingService.py | 14 +++++++++++--- 4 files changed, 18 insertions(+), 4 deletions(-) diff --git a/config/config.example.toml b/config/config.example.toml index 918eeba..2b1bf40 100644 --- a/config/config.example.toml +++ b/config/config.example.toml @@ -24,3 +24,5 @@ [seating] base_svg_path="" + +dev_mode_active=false # Supresses E-Mail sending diff --git a/src/ez_lan_manager/__init__.py b/src/ez_lan_manager/__init__.py index 28b5bb0..88c136e 100644 --- a/src/ez_lan_manager/__init__.py +++ b/src/ez_lan_manager/__init__.py @@ -22,7 +22,7 @@ def init_services() -> tuple[AccountingService, CateringService, ConfigurationSe user_service = UserService(db_service) accounting_service = AccountingService(db_service) news_service = NewsService(db_service) - mailing_service = MailingService(configuration_service.get_mailing_service_configuration()) + mailing_service = MailingService(configuration_service) ticketing_service = TicketingService(configuration_service.get_lan_info(), db_service, accounting_service) seating_service = SeatingService(configuration_service.get_seating_configuration(), configuration_service.get_lan_info(), db_service, ticketing_service) catering_service = CateringService(db_service, accounting_service, user_service) diff --git a/src/ez_lan_manager/services/ConfigurationService.py b/src/ez_lan_manager/services/ConfigurationService.py index 9f10d69..0c731e6 100644 --- a/src/ez_lan_manager/services/ConfigurationService.py +++ b/src/ez_lan_manager/services/ConfigurationService.py @@ -93,3 +93,7 @@ class ConfigurationService: @property def APP_VERSION(self) -> str: return self._version + + @property + def DEV_MODE_ACTIVE(self) -> bool: + return self._config["dev_mode_active"] diff --git a/src/ez_lan_manager/services/MailingService.py b/src/ez_lan_manager/services/MailingService.py index 0231827..54e4354 100644 --- a/src/ez_lan_manager/services/MailingService.py +++ b/src/ez_lan_manager/services/MailingService.py @@ -1,16 +1,24 @@ import logging from email.message import EmailMessage +from asyncio import sleep + import aiosmtplib -from src.ez_lan_manager.types.ConfigurationTypes import MailingServiceConfiguration +from src.ez_lan_manager.services.ConfigurationService import ConfigurationService logger = logging.getLogger(__name__.split(".")[-1]) class MailingService: - def __init__(self, configuration: MailingServiceConfiguration): - self._config = configuration + def __init__(self, configuration_service: ConfigurationService): + self._configuration_service = configuration_service + self._config = self._configuration_service.get_mailing_service_configuration() async def send_email(self, subject: str, body: str, receiver: str) -> None: + if self._configuration_service.DEV_MODE_ACTIVE: + logger.info(f"Skipped sending mail to {receiver} because demo mode is active.") + await sleep(1) + return + try: message = EmailMessage() message["From"] = self._config.sender