@@ -124,7 +124,6 @@ async def _fetch_member_api(member_id: str) -> models.DiscordMember | None:
124124
125125
126126async def get_member (
127- database : Database ,
128127 user_id : str ,
129128 * ,
130129 force_refresh : bool = False ,
@@ -135,34 +134,23 @@ async def get_member(
135134 If `force_refresh` is True, the cache is skipped and the entry is updated.
136135 None may be returned if the member object does not exist.
137136 """
138- collection = database . get_collection ( "discord_members" )
137+ member_key = f"forms-backend:member_cache: { user_id } "
139138
140139 if force_refresh :
141- await collection .delete_one ({"user" : user_id })
142-
143- # `create_index` creates the index if it does not exist, or passes
144- # This handles TTL on member objects
145- await collection .create_index (
146- "inserted_at" ,
147- expireAfterSeconds = 60 * 60 , # 1 hour
148- name = "inserted_at" ,
149- )
140+ await constants .REDIS_CLIENT .delete (member_key )
150141
151- result = await collection . find_one ({ "user" : user_id } )
142+ result = await constants . REDIS_CLIENT . get ( member_key )
152143
153144 if result is not None :
154- return models .DiscordMember (** json .loads (result [ "data" ] ))
145+ return models .DiscordMember (** json .loads (result ))
155146
156147 member = await _fetch_member_api (user_id )
157148
158149 if not member :
159150 return None
160151
161- await collection .insert_one ({
162- "user" : user_id ,
163- "data" : member .json (),
164- "inserted_at" : datetime .datetime .now (tz = datetime .UTC ),
165- })
152+ await constants .REDIS_CLIENT .set (member_key , member .json (), ex = 60 * 60 )
153+
166154 return member
167155
168156
0 commit comments