Skip to content
This repository was archived by the owner on Apr 26, 2024. It is now read-only.

Commit c52abc1

Browse files
authored
Additional constants for EDU types. (#12884)
Instead of hard-coding strings in many places.
1 parent d9f0922 commit c52abc1

35 files changed

+146
-96
lines changed

changelog.d/12884.misc

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Use constants for EDU types.

synapse/api/constants.py

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -137,7 +137,13 @@ class DeviceKeyAlgorithms:
137137

138138

139139
class EduTypes:
140-
Presence: Final = "m.presence"
140+
PRESENCE: Final = "m.presence"
141+
TYPING: Final = "m.typing"
142+
RECEIPT: Final = "m.receipt"
143+
DEVICE_LIST_UPDATE: Final = "m.device_list_update"
144+
SIGNING_KEY_UPDATE: Final = "m.signing_key_update"
145+
UNSTABLE_SIGNING_KEY_UPDATE: Final = "org.matrix.signing_key_update"
146+
DIRECT_TO_DEVICE: Final = "m.direct_to_device"
141147

142148

143149
class RejectedReason:

synapse/api/filtering.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@
3333
import jsonschema
3434
from jsonschema import FormatChecker
3535

36-
from synapse.api.constants import EventContentFields
36+
from synapse.api.constants import EduTypes, EventContentFields
3737
from synapse.api.errors import SynapseError
3838
from synapse.api.presence import UserPresenceState
3939
from synapse.events import EventBase
@@ -347,7 +347,7 @@ def _check(self, event: FilterEvent) -> bool:
347347
user_id = event.user_id
348348
field_matchers = {
349349
"senders": lambda v: user_id == v,
350-
"types": lambda v: "m.presence" == v,
350+
"types": lambda v: EduTypes.PRESENCE == v,
351351
}
352352
return self._check_fields(field_matchers)
353353
else:

synapse/federation/federation_server.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1353,7 +1353,7 @@ def register_instances_for_edu(
13531353
self._edu_type_to_instance[edu_type] = instance_names
13541354

13551355
async def on_edu(self, edu_type: str, origin: str, content: dict) -> None:
1356-
if not self.config.server.use_presence and edu_type == EduTypes.Presence:
1356+
if not self.config.server.use_presence and edu_type == EduTypes.PRESENCE:
13571357
return
13581358

13591359
# Check if we have a handler on this instance

synapse/federation/sender/per_destination_queue.py

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
import attr
2222
from prometheus_client import Counter
2323

24+
from synapse.api.constants import EduTypes
2425
from synapse.api.errors import (
2526
FederationDeniedError,
2627
HttpResponseException,
@@ -542,7 +543,7 @@ def _get_rr_edus(self, force_flush: bool) -> Iterable[Edu]:
542543
edu = Edu(
543544
origin=self._server_name,
544545
destination=self._destination,
545-
edu_type="m.receipt",
546+
edu_type=EduTypes.RECEIPT,
546547
content=self._pending_rrs,
547548
)
548549
self._pending_rrs = {}
@@ -592,7 +593,7 @@ async def _get_to_device_message_edus(self, limit: int) -> Tuple[List[Edu], int]
592593
Edu(
593594
origin=self._server_name,
594595
destination=self._destination,
595-
edu_type="m.direct_to_device",
596+
edu_type=EduTypes.DIRECT_TO_DEVICE,
596597
content=content,
597598
)
598599
for content in contents
@@ -670,7 +671,7 @@ async def __aenter__(self) -> Tuple[List[EventBase], List[Edu]]:
670671
Edu(
671672
origin=self.queue._server_name,
672673
destination=self.queue._destination,
673-
edu_type="m.presence",
674+
edu_type=EduTypes.PRESENCE,
674675
content={
675676
"push": [
676677
format_user_presence_state(

synapse/federation/sender/transaction_manager.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616

1717
from prometheus_client import Gauge
1818

19+
from synapse.api.constants import EduTypes
1920
from synapse.api.errors import HttpResponseException
2021
from synapse.events import EventBase
2122
from synapse.federation.persistence import TransactionActions
@@ -126,7 +127,10 @@ async def send_new_transaction(
126127
len(edus),
127128
)
128129
if issue_8631_logger.isEnabledFor(logging.DEBUG):
129-
DEVICE_UPDATE_EDUS = {"m.device_list_update", "m.signing_key_update"}
130+
DEVICE_UPDATE_EDUS = {
131+
EduTypes.DEVICE_LIST_UPDATE,
132+
EduTypes.SIGNING_KEY_UPDATE,
133+
}
130134
device_list_updates = [
131135
edu.content for edu in edus if edu.edu_type in DEVICE_UPDATE_EDUS
132136
]

synapse/federation/transport/server/federation.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727
from matrix_common.versionstring import get_distribution_version_string
2828
from typing_extensions import Literal
2929

30+
from synapse.api.constants import EduTypes
3031
from synapse.api.errors import Codes, SynapseError
3132
from synapse.api.room_versions import RoomVersions
3233
from synapse.api.urls import FEDERATION_UNSTABLE_PREFIX, FEDERATION_V2_PREFIX
@@ -108,7 +109,10 @@ async def on_PUT(
108109
)
109110

110111
if issue_8631_logger.isEnabledFor(logging.DEBUG):
111-
DEVICE_UPDATE_EDUS = ["m.device_list_update", "m.signing_key_update"]
112+
DEVICE_UPDATE_EDUS = [
113+
EduTypes.DEVICE_LIST_UPDATE,
114+
EduTypes.SIGNING_KEY_UPDATE,
115+
]
112116
device_list_updates = [
113117
edu.get("content", {})
114118
for edu in transaction_data.get("edus", [])

synapse/handlers/appservice.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
from twisted.internet import defer
2020

2121
import synapse
22-
from synapse.api.constants import EventTypes
22+
from synapse.api.constants import EduTypes, EventTypes
2323
from synapse.appservice import ApplicationService
2424
from synapse.events import EventBase
2525
from synapse.handlers.presence import format_user_presence_state
@@ -503,7 +503,7 @@ async def _handle_presence(
503503
time_now = self.clock.time_msec()
504504
events.extend(
505505
{
506-
"type": "m.presence",
506+
"type": EduTypes.PRESENCE,
507507
"sender": event.user_id,
508508
"content": format_user_presence_state(
509509
event, time_now, include_user_id=False

synapse/handlers/device.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@
2828
)
2929

3030
from synapse.api import errors
31-
from synapse.api.constants import EventTypes
31+
from synapse.api.constants import EduTypes, EventTypes
3232
from synapse.api.errors import (
3333
Codes,
3434
FederationDeniedError,
@@ -279,7 +279,8 @@ def __init__(self, hs: "HomeServer"):
279279
federation_registry = hs.get_federation_registry()
280280

281281
federation_registry.register_edu_handler(
282-
"m.device_list_update", self.device_list_updater.incoming_device_list_update
282+
EduTypes.DEVICE_LIST_UPDATE,
283+
self.device_list_updater.incoming_device_list_update,
283284
)
284285

285286
hs.get_distributor().observe("user_left_room", self.user_left_room)

synapse/handlers/devicemessage.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
import logging
1616
from typing import TYPE_CHECKING, Any, Dict
1717

18-
from synapse.api.constants import ToDeviceEventTypes
18+
from synapse.api.constants import EduTypes, ToDeviceEventTypes
1919
from synapse.api.errors import SynapseError
2020
from synapse.api.ratelimiting import Ratelimiter
2121
from synapse.logging.context import run_in_background
@@ -59,11 +59,11 @@ def __init__(self, hs: "HomeServer"):
5959
# to the appropriate worker.
6060
if hs.get_instance_name() in hs.config.worker.writers.to_device:
6161
hs.get_federation_registry().register_edu_handler(
62-
"m.direct_to_device", self.on_direct_to_device_edu
62+
EduTypes.DIRECT_TO_DEVICE, self.on_direct_to_device_edu
6363
)
6464
else:
6565
hs.get_federation_registry().register_instances_for_edu(
66-
"m.direct_to_device",
66+
EduTypes.DIRECT_TO_DEVICE,
6767
hs.config.worker.writers.to_device,
6868
)
6969

0 commit comments

Comments
 (0)