diff --git a/selfprivacy_api/services/roundcube/__init__.py b/selfprivacy_api/services/roundcube/__init__.py index a2b2300..61a23ea 100644 --- a/selfprivacy_api/services/roundcube/__init__.py +++ b/selfprivacy_api/services/roundcube/__init__.py @@ -44,14 +44,6 @@ class Roundcube(Service): subdomain = get_subdomain() return f"https://{subdomain}.{domain}" - @staticmethod - def get_subdomain() -> Optional[str]: - with ReadUserData() as data: - if "roundcube" in data["modules"]: - return data["modules"]["roundcube"]["subdomain"] - - return "webmail" - @staticmethod def is_movable() -> bool: return False diff --git a/selfprivacy_api/services/service.py b/selfprivacy_api/services/service.py index 64a1e80..262d690 100644 --- a/selfprivacy_api/services/service.py +++ b/selfprivacy_api/services/service.py @@ -1,4 +1,5 @@ """Abstract class for a service running on a server""" + from abc import ABC, abstractmethod from typing import List, Optional @@ -73,13 +74,14 @@ class Service(ABC): """ pass - @staticmethod - @abstractmethod def get_subdomain() -> Optional[str]: """ The assigned primary subdomain for this service. """ - pass + with ReadUserData() as data: + if self.get_display_name() in data["modules"]: + if "subdomain" in data["modules"][self.get_display_name()]: + return data["modules"][self.get_display_name()]["subdomain"] @classmethod def get_user(cls) -> Optional[str]: