update events via wrapper routers

This commit is contained in:
2025-01-16 19:32:59 +03:00
parent 049a7c1e11
commit 426b69b33c
42 changed files with 2344 additions and 460 deletions

View File

@@ -1,3 +1,4 @@
import json
import arrow
from typing import Optional, List, Dict, Union
@@ -20,6 +21,43 @@ class RedisActions:
for unit, multiplier in time_multipliers.items()
)
@classmethod
def delete_key(cls, key: Union[Optional[str], Optional[bytes]]):
try:
redis_cli.delete(key)
return RedisResponse(
status=True,
message="Value is deleted successfully.",
)
except Exception as e:
return RedisResponse(
status=False,
message="Value is not deleted successfully.",
error=str(e),
)
@classmethod
def delete(
cls, list_keys: List[Union[Optional[str], Optional[bytes]]]
) -> RedisResponse:
try:
regex = RedisRow.regex(list_keys=list_keys)
json_get = redis_cli.scan_iter(match=regex)
for row in list(json_get):
redis_cli.delete(row)
return RedisResponse(
status=True,
message="Values are deleted successfully.",
)
except Exception as e:
return RedisResponse(
status=False,
message="Values are not deleted successfully.",
error=str(e),
)
@classmethod
def set_json(
cls,

View File

@@ -131,7 +131,7 @@ class RedisRow:
return key_str.split(cls.delimiter)
@classmethod
def feed(cls, value: Union[bytes, Dict, List]) -> None:
def feed(cls, value: Union[bytes, Dict, List, str]) -> None:
"""
Convert and store value in JSON format.
@@ -151,6 +151,8 @@ class RedisRow:
cls.value = json.dumps(value)
elif isinstance(value, bytes):
cls.value = json.dumps(json.loads(value.decode()))
elif isinstance(value, str):
cls.value = value
else:
raise RedisValueError(f"Unsupported value type: {type(value)}")
except json.JSONDecodeError as e:

View File

@@ -1,12 +1,22 @@
from pydantic import BaseModel
from typing import Optional
from uuid import UUID
from pydantic import BaseModel, validator
class AccessToken(BaseModel):
accessToken: str
userUUID: str
accessToken: Optional[str] = None
userUUID: Optional[str] = None
@validator("userUUID", pre=True)
def validate_uuid(cls, v):
"""Convert UUID to string during validation."""
if isinstance(v, UUID):
return str(v)
return v
def to_list(self):
"""Convert to list for Redis storage."""
return [self.accessToken, self.userUUID]
@property