73 lines
2.0 KiB
Python

"""Compatibility facade for Ariadne comms workflows."""
from __future__ import annotations
from typing import Any
import httpx
import psycopg
from ..settings import settings
from ..utils.name_generator import NameGenerator
from .comms_guest import CommsGuestService
from .comms_room import CommsRoomService
from .comms_support import (
CommsSummary,
DisplayNameTarget,
MasGuestResult,
SynapseGuestResult,
SynapseUserRef,
_auth,
_canon_user,
_needs_rename_display,
_needs_rename_username,
)
__all__ = [
"CommsService",
"CommsSummary",
"DisplayNameTarget",
"MasGuestResult",
"SynapseGuestResult",
"SynapseUserRef",
"_auth",
"_canon_user",
"_needs_rename_display",
"_needs_rename_username",
"psycopg",
"comms",
]
class CommsService:
"""Keep the historical comms API while delegating to focused helpers."""
def __init__(
self,
client_factory: type[httpx.Client] = httpx.Client,
name_generator: NameGenerator | None = None,
) -> None:
self._client_factory = client_factory
self._name_generator = name_generator or NameGenerator()
self._guest = CommsGuestService(client_factory, settings, self._name_generator)
self._room = CommsRoomService(client_factory, settings)
def run_guest_name_randomizer(self, wait: bool = True) -> dict[str, Any]:
self._guest._db_rename_numeric = self._db_rename_numeric
return self._guest.run_guest_name_randomizer(wait=wait)
def run_pin_invite(self, wait: bool = True) -> dict[str, Any]:
return self._room.run_pin_invite(wait=wait)
def run_reset_room(self, wait: bool = True) -> dict[str, Any]:
return self._room.run_reset_room(wait=wait)
def run_seed_room(self, wait: bool = True) -> dict[str, Any]:
return self._room.run_seed_room(wait=wait)
def _db_rename_numeric(self, existing: set[str]) -> int:
return self._guest._db_rename_numeric(existing)
comms = CommsService()