19
19
from typing import TYPE_CHECKING , Iterable , List , Optional , Tuple
20
20
21
21
from prometheus_client import Counter
22
- from typing_extensions import TypedDict
22
+ import attr
23
23
24
24
from synapse import types
25
25
from synapse .api .constants import MAX_USERID_LENGTH , EventTypes , JoinRules , LoginType
56
56
["guest" , "auth_provider" ],
57
57
)
58
58
59
- LoginDict = TypedDict (
60
- "LoginDict" ,
61
- {
62
- "device_id" : str ,
63
- "access_token" : str ,
64
- "valid_until_ms" : Optional [int ],
65
- "refresh_token" : Optional [str ],
66
- },
67
- )
59
+
60
+ @attr .s (frozen = True , slots = True )
61
+ class DeviceRegistrationResult :
62
+ device_id = attr .ib (type = str )
63
+ access_token = attr .ib (type = str )
64
+ valid_until_ms = attr .ib (type = Optional [int ])
65
+ refresh_token = attr .ib (type = Optional [str ])
68
66
69
67
70
68
class RegistrationHandler (BaseHandler ):
@@ -710,10 +708,10 @@ async def register_device(
710
708
).inc ()
711
709
712
710
return (
713
- res [ " device_id" ] ,
714
- res [ " access_token" ] ,
715
- res [ " valid_until_ms" ] ,
716
- res [ " refresh_token" ] ,
711
+ res . device_id ,
712
+ res . access_token ,
713
+ res . valid_until_ms ,
714
+ res . refresh_token ,
717
715
)
718
716
719
717
async def register_device_inner (
@@ -724,7 +722,7 @@ async def register_device_inner(
724
722
is_guest : bool = False ,
725
723
is_appservice_ghost : bool = False ,
726
724
should_issue_refresh_token : bool = False ,
727
- ) -> LoginDict :
725
+ ) -> DeviceRegistrationResult :
728
726
"""Helper for register_device
729
727
730
728
Does the bits that need doing on the main process. Not for use outside this
@@ -769,12 +767,12 @@ class and RegisterDeviceReplicationServlet.
769
767
refresh_token_id = refresh_token_id ,
770
768
)
771
769
772
- return {
773
- " device_id" : registered_device_id ,
774
- " access_token" : access_token ,
775
- " valid_until_ms" : valid_until_ms ,
776
- " refresh_token" : refresh_token ,
777
- }
770
+ return DeviceRegistrationResult (
771
+ device_id = registered_device_id ,
772
+ access_token = access_token ,
773
+ valid_until_ms = valid_until_ms ,
774
+ refresh_token = refresh_token ,
775
+ )
778
776
779
777
async def post_registration_actions (
780
778
self , user_id : str , auth_result : dict , access_token : Optional [str ]
0 commit comments