32 lines
1.2 KiB
Python
32 lines
1.2 KiB
Python
from components.database import IN_MEMORY_DB
|
|
from components.models import UUID, validate_call, constr
|
|
from components.utils import ensure_list
|
|
from components.logs import logger
|
|
|
|
|
|
@validate_call
|
|
def buster(
|
|
bust_uuid: UUID
|
|
| list[UUID]
|
|
| list[constr(pattern=r"^[0-9a-fA-F]+$", min_length=16)]
|
|
| constr(pattern=r"^[0-9a-fA-F]+$", min_length=16)
|
|
):
|
|
bust_uuids = ensure_list(bust_uuid)
|
|
|
|
for bust_uuid in bust_uuids:
|
|
bust_uuid = str(bust_uuid)
|
|
for user_id in IN_MEMORY_DB["CACHE"]["MODELS"]:
|
|
cached_keys = list(IN_MEMORY_DB["CACHE"]["MODELS"][user_id].keys())
|
|
if bust_uuid in cached_keys:
|
|
if bust_uuid in IN_MEMORY_DB["CACHE"]["MODELS"][user_id]:
|
|
logger.debug(f"Cache buster 🧹 USER:{user_id};ITEM:{bust_uuid}")
|
|
del IN_MEMORY_DB["CACHE"]["MODELS"][user_id][bust_uuid]
|
|
|
|
for user_id in IN_MEMORY_DB["CACHE"]["FORMS"]:
|
|
for option in IN_MEMORY_DB["CACHE"]["FORMS"][user_id].copy():
|
|
if any(
|
|
d["value"] == bust_uuid
|
|
for d in IN_MEMORY_DB["CACHE"]["FORMS"][user_id][option]
|
|
):
|
|
del IN_MEMORY_DB["CACHE"]["FORMS"][user_id][option]
|