redis implemntations and api setup completed

This commit is contained in:
2025-01-25 20:59:47 +03:00
parent 32022ca521
commit 3d5a43220e
138 changed files with 2888 additions and 1117 deletions

View File

@@ -0,0 +1,30 @@
from typing import Optional
from uuid import UUID
from pydantic import field_validator
from Services.Redis.Models.row import BaseRedisModel
class AccessToken(BaseRedisModel):
accessToken: Optional[str] = None
userUUID: Optional[str | UUID] = None
@field_validator("userUUID", mode="after")
def validate_uuid(cls, v):
"""Convert UUID to string during validation."""
if v is None:
return None
return str(v)
def to_list(self):
"""Convert to list for Redis storage."""
return [self.accessToken, str(self.userUUID) if self.userUUID else None]
@property
def count(self):
return 2
@property
def delimiter(self):
return ":"

View File

@@ -0,0 +1,17 @@
from Services.Redis.Models.row import BaseRedisModel
class RedisList(BaseRedisModel):
redis_key: str
def to_list(self):
"""Convert to list for Redis storage."""
return [self.redis_key]
@property
def count(self):
return 1
@property
def delimiter(self):
return ":"

View File

@@ -1,28 +1,20 @@
from typing import Optional, Literal
from uuid import UUID
from pydantic import BaseModel, field_validator
from abc import abstractmethod
from pydantic import BaseModel
class AccessToken(BaseModel):
class BaseRedisModel(BaseModel):
accessToken: Optional[str] = None
userUUID: Optional[str | UUID] = None
@field_validator("userUUID", mode="after")
def validate_uuid(cls, v):
"""Convert UUID to string during validation."""
if v is None:
return None
return str(v)
def to_list(self):
@abstractmethod
def to_list(self) -> list:
"""Convert to list for Redis storage."""
return [self.accessToken, str(self.userUUID) if self.userUUID else None]
pass
@property
def count(self):
return 2
@abstractmethod
def count(self) -> int:
"""Return the number of elements in the list."""
pass
@property
def delimiter(self):
return "*"
@abstractmethod
def delimiter(self) -> str:
"""Return the delimiter for the list."""
pass