diff options
author | Andrew Morgan <andrew@amorgan.xyz> | 2021-12-01 16:53:01 +0000 |
---|---|---|
committer | Andrew Morgan <andrew@amorgan.xyz> | 2021-12-01 17:13:49 +0000 |
commit | dac2fedb4b9005918fbfafee374fb7e5b64f8ed7 (patch) | |
tree | 03bc1e05465d006f22ff4a0ca48473d42707d0a0 | |
parent | generalise sending application service transactions and allow to-device (diff) | |
download | synapse-dac2fedb4b9005918fbfafee374fb7e5b64f8ed7.tar.xz |
fix type hint; make AppServiceTransaction instantiation a bit easier
-rw-r--r-- | synapse/appservice/__init__.py | 8 | ||||
-rw-r--r-- | synapse/appservice/api.py | 4 | ||||
-rw-r--r-- | synapse/storage/databases/main/appservice.py | 4 |
3 files changed, 7 insertions, 9 deletions
diff --git a/synapse/appservice/__init__.py b/synapse/appservice/__init__.py index 0ca8b2ae40..6a070e61cc 100644 --- a/synapse/appservice/__init__.py +++ b/synapse/appservice/__init__.py @@ -328,14 +328,14 @@ class AppServiceTransaction: service: ApplicationService, id: int, events: List[EventBase], - ephemeral: List[JsonDict], - to_device_messages: List[JsonDict], + ephemeral: Optional[List[JsonDict]] = None, + to_device_messages: Optional[List[JsonDict]] = None, ): self.service = service self.id = id self.events = events - self.ephemeral = ephemeral - self.to_device_messages = to_device_messages + self.ephemeral = ephemeral or [] + self.to_device_messages = to_device_messages or [] async def send(self, as_api: "ApplicationServiceApi") -> bool: """Sends this transaction using the provided AS API interface. diff --git a/synapse/appservice/api.py b/synapse/appservice/api.py index e0509efe2a..62f977de2c 100644 --- a/synapse/appservice/api.py +++ b/synapse/appservice/api.py @@ -13,7 +13,7 @@ # limitations under the License. import logging import urllib -from typing import TYPE_CHECKING, List, Optional, Tuple +from typing import TYPE_CHECKING, Dict, List, Optional, Tuple, Union from prometheus_client import Counter @@ -235,7 +235,7 @@ class ApplicationServiceApi(SimpleHttpClient): uri = service.url + ("/transactions/%s" % urllib.parse.quote(str(txn_id))) # Never send ephemeral events to appservices that do not support it - body = {"events": events} + body: Dict[str, Union[List[EventBase], List[JsonDict]]] = {"events": events} if service.supports_ephemeral: body.update( diff --git a/synapse/storage/databases/main/appservice.py b/synapse/storage/databases/main/appservice.py index 20d91f3a7e..3c86d54612 100644 --- a/synapse/storage/databases/main/appservice.py +++ b/synapse/storage/databases/main/appservice.py @@ -331,9 +331,7 @@ class ApplicationServiceTransactionWorkerStore( events = await self.get_events_as_list(event_ids) - return AppServiceTransaction( - service=service, id=entry["txn_id"], events=events, ephemeral=[] - ) + return AppServiceTransaction(service=service, id=entry["txn_id"], events=events) def _get_last_txn(self, txn, service_id: Optional[str]) -> int: txn.execute( |