@@ -2022,25 +2022,6 @@ def get_next_event_to_expire_txn(
2022
2022
desc = "get_next_event_to_expire" , func = get_next_event_to_expire_txn
2023
2023
)
2024
2024
2025
- async def get_event_id_from_transaction_id_and_token_id (
2026
- self , room_id : str , user_id : str , token_id : int , txn_id : str
2027
- ) -> Optional [str ]:
2028
- """Look up if we have already persisted an event for the transaction ID,
2029
- returning the event ID if so.
2030
- """
2031
- return await self .db_pool .simple_select_one_onecol (
2032
- table = "event_txn_id" ,
2033
- keyvalues = {
2034
- "room_id" : room_id ,
2035
- "user_id" : user_id ,
2036
- "token_id" : token_id ,
2037
- "txn_id" : txn_id ,
2038
- },
2039
- retcol = "event_id" ,
2040
- allow_none = True ,
2041
- desc = "get_event_id_from_transaction_id_and_token_id" ,
2042
- )
2043
-
2044
2025
async def get_event_id_from_transaction_id_and_device_id (
2045
2026
self , room_id : str , user_id : str , device_id : str , txn_id : str
2046
2027
) -> Optional [str ]:
@@ -2072,29 +2053,35 @@ async def get_already_persisted_events(
2072
2053
"""
2073
2054
2074
2055
mapping = {}
2075
- txn_id_to_event : Dict [Tuple [str , int , str ], str ] = {}
2056
+ txn_id_to_event : Dict [Tuple [str , str , str , str ], str ] = {}
2076
2057
2077
2058
for event in events :
2078
- token_id = getattr (event .internal_metadata , "token_id " , None )
2059
+ device_id = getattr (event .internal_metadata , "device_id " , None )
2079
2060
txn_id = getattr (event .internal_metadata , "txn_id" , None )
2080
2061
2081
- if token_id and txn_id :
2062
+ if device_id and txn_id :
2082
2063
# Check if this is a duplicate of an event in the given events.
2083
- existing = txn_id_to_event .get ((event .room_id , token_id , txn_id ))
2064
+ existing = txn_id_to_event .get (
2065
+ (event .room_id , event .sender , device_id , txn_id )
2066
+ )
2084
2067
if existing :
2085
2068
mapping [event .event_id ] = existing
2086
2069
continue
2087
2070
2088
2071
# Check if this is a duplicate of an event we've already
2089
2072
# persisted.
2090
- existing = await self .get_event_id_from_transaction_id_and_token_id (
2091
- event .room_id , event .sender , token_id , txn_id
2073
+ existing = await self .get_event_id_from_transaction_id_and_device_id (
2074
+ event .room_id , event .sender , device_id , txn_id
2092
2075
)
2093
2076
if existing :
2094
2077
mapping [event .event_id ] = existing
2095
- txn_id_to_event [(event .room_id , token_id , txn_id )] = existing
2078
+ txn_id_to_event [
2079
+ (event .room_id , event .sender , device_id , txn_id )
2080
+ ] = existing
2096
2081
else :
2097
- txn_id_to_event [(event .room_id , token_id , txn_id )] = event .event_id
2082
+ txn_id_to_event [
2083
+ (event .room_id , event .sender , device_id , txn_id )
2084
+ ] = event .event_id
2098
2085
2099
2086
return mapping
2100
2087
0 commit comments