Define split JSON and object repository ABCs, promote adapter methods to public CRUD, add example domain repositories, modernize interface stubs, and make the package installable for tests. Co-authored-by: Cursor <[email protected]>
20 lines
590 B
Python
20 lines
590 B
Python
"""Example domain repository backed by Redis JSON."""
|
|
|
|
from python_repositories.adapters.redis_adapter import RedisAdapter
|
|
|
|
|
|
class UserJsonRepository(RedisAdapter):
|
|
"""Example: domain repository backed by Redis JSON."""
|
|
|
|
def _key(self, user_id: str) -> str:
|
|
return f"user:{user_id}"
|
|
|
|
def get_user(self, user_id: str) -> dict | None:
|
|
return self.get(self._key(user_id))
|
|
|
|
def save_user(self, user_id: str, user: dict) -> None:
|
|
self.set(self._key(user_id), user)
|
|
|
|
def delete_user(self, user_id: str) -> None:
|
|
self.delete(self._key(user_id))
|