summaryrefslogtreecommitdiff
path: root/synapse/push/pusher.py
diff options
context:
space:
mode:
authorAndrej Shadura <andrewsh@debian.org>2021-01-13 14:00:16 +0100
committerAndrej Shadura <andrewsh@debian.org>2021-01-13 14:00:16 +0100
commit56044cac92cdd65dc3b4fd03557eaf32976e6da9 (patch)
treecaca2f4e58b83affd235455f61b1bc84bc202816 /synapse/push/pusher.py
parentf509bf3ab10e82c5ba6e4e3b5a7db0f9c55026c1 (diff)
New upstream version 1.25.0
Diffstat (limited to 'synapse/push/pusher.py')
-rw-r--r--synapse/push/pusher.py34
1 files changed, 21 insertions, 13 deletions
diff --git a/synapse/push/pusher.py b/synapse/push/pusher.py
index 2a52e226..2aa7918f 100644
--- a/synapse/push/pusher.py
+++ b/synapse/push/pusher.py
@@ -14,25 +14,31 @@
# limitations under the License.
import logging
+from typing import TYPE_CHECKING, Callable, Dict, Optional
+from synapse.push import Pusher, PusherConfig
from synapse.push.emailpusher import EmailPusher
+from synapse.push.httppusher import HttpPusher
from synapse.push.mailer import Mailer
-from .httppusher import HttpPusher
+if TYPE_CHECKING:
+ from synapse.app.homeserver import HomeServer
logger = logging.getLogger(__name__)
class PusherFactory:
- def __init__(self, hs):
+ def __init__(self, hs: "HomeServer"):
self.hs = hs
self.config = hs.config
- self.pusher_types = {"http": HttpPusher}
+ self.pusher_types = {
+ "http": HttpPusher
+ } # type: Dict[str, Callable[[HomeServer, PusherConfig], Pusher]]
logger.info("email enable notifs: %r", hs.config.email_enable_notifs)
if hs.config.email_enable_notifs:
- self.mailers = {} # app_name -> Mailer
+ self.mailers = {} # type: Dict[str, Mailer]
self._notif_template_html = hs.config.email_notif_template_html
self._notif_template_text = hs.config.email_notif_template_text
@@ -41,16 +47,18 @@ class PusherFactory:
logger.info("defined email pusher type")
- def create_pusher(self, pusherdict):
- kind = pusherdict["kind"]
+ def create_pusher(self, pusher_config: PusherConfig) -> Optional[Pusher]:
+ kind = pusher_config.kind
f = self.pusher_types.get(kind, None)
if not f:
return None
- logger.debug("creating %s pusher for %r", kind, pusherdict)
- return f(self.hs, pusherdict)
+ logger.debug("creating %s pusher for %r", kind, pusher_config)
+ return f(self.hs, pusher_config)
- def _create_email_pusher(self, _hs, pusherdict):
- app_name = self._app_name_from_pusherdict(pusherdict)
+ def _create_email_pusher(
+ self, _hs: "HomeServer", pusher_config: PusherConfig
+ ) -> EmailPusher:
+ app_name = self._app_name_from_pusherdict(pusher_config)
mailer = self.mailers.get(app_name)
if not mailer:
mailer = Mailer(
@@ -60,10 +68,10 @@ class PusherFactory:
template_text=self._notif_template_text,
)
self.mailers[app_name] = mailer
- return EmailPusher(self.hs, pusherdict, mailer)
+ return EmailPusher(self.hs, pusher_config, mailer)
- def _app_name_from_pusherdict(self, pusherdict):
- data = pusherdict["data"]
+ def _app_name_from_pusherdict(self, pusher_config: PusherConfig) -> str:
+ data = pusher_config.data
if isinstance(data, dict):
brand = data.get("brand")