attachments: Refactor code for flushing used_upload_space cache.

Subsequent commits will add "on_delete=models.RESTRICT"
relationships, which will result in the Attachment
objects being deleted after Realm has been deleted from
the database.

In order to handle this, we update
get_realm_used_upload_space_cache_key function to accept
realm_id as parameter instead of realm object, so that
the code for flushing the cache works even after the
realm is deleted. This change is fine because eventually
only realm_id is used by this function and there is no
need of the complete realm object.
This commit is contained in:
Ujjawal Modi
2023-06-09 01:16:38 +05:30
committed by Tim Abbott
parent 535a088d0b
commit f7346f36fc
3 changed files with 14 additions and 10 deletions

View File

@@ -498,8 +498,8 @@ def get_muting_users_cache_key(muted_user_id: int) -> str:
return f"muting_users_list:{muted_user_id}"
def get_realm_used_upload_space_cache_key(realm: "Realm") -> str:
return f"realm_used_upload_space:{realm.id}"
def get_realm_used_upload_space_cache_key(realm_id: int) -> str:
return f"realm_used_upload_space:{realm_id}"
def active_user_ids_cache_key(realm_id: int) -> str:
@@ -699,7 +699,7 @@ def flush_used_upload_space_cache(
attachment = instance
if created:
cache_delete(get_realm_used_upload_space_cache_key(attachment.owner.realm))
cache_delete(get_realm_used_upload_space_cache_key(attachment.owner.realm_id))
def to_dict_cache_key_id(message_id: int) -> str: