Added database context

This commit is contained in:
2021-11-30 14:51:58 +01:00
parent 01cf17ef86
commit 14ecc46d92
14 changed files with 325 additions and 27 deletions

View File

@@ -0,0 +1 @@
# imports

View File

@@ -0,0 +1,37 @@
from cpl_core.database.context import DatabaseContextABC
from cpl_query.extension import List
from gismo_data.abc.server_repository_abc import ServerRepositoryABC
from gismo_data.model.server import Server
class ServerRepositoryService(ServerRepositoryABC):
def __init__(self, db_context: DatabaseContextABC):
self._context = db_context
ServerRepositoryABC.__init__(self)
def get_servers(self) -> List[Server]:
servers = List(Server)
results = self._context.select(Server.get_select_all_string())
for result in results:
servers.append(Server(
result[1],
id=result[0]
))
return servers
def get_server_by_id(self, id: int) -> Server:
result = self._context.select(Server.get_select_by_id_string(id))
return Server(
result[1],
id=result[0]
)
def get_server_by_discord_id(self, discord_id: int) -> Server:
result = self._context.select(Server.get_select_by_discord_id_string(discord_id))
return Server(
result[1],
id=result[0]
)

View File

@@ -0,0 +1,47 @@
from cpl_core.database.context import DatabaseContextABC
from cpl_query.extension import List
from gismo_data.abc.server_repository_abc import ServerRepositoryABC
from gismo_data.abc.user_repository_abc import UserRepositoryABC
from gismo_data.model.user import User
class UserRepositoryService(UserRepositoryABC):
def __init__(self, db_context: DatabaseContextABC, servers: ServerRepositoryABC):
self._context = db_context
self._servers = servers
UserRepositoryABC.__init__(self)
def get_users(self) -> List[User]:
users = List(User)
results = self._context.select(User.get_select_all_string())
for result in results:
users.append(User(
result[1],
result[2],
self._servers.get_server_by_id(result[3]),
id=result[0]
))
return users
def get_user_by_id(self, id: int) -> User:
result = self._context.select(User.get_select_by_id_string(id))
return User(
result[1],
result[2],
self._servers.get_server_by_id(result[3]),
id=result[0]
)
def get_user_by_discord_id(self, discord_id: int) -> User:
result = self._context.select(User.get_select_by_discord_id_string(discord_id))
return User(
result[1],
result[2],
self._servers.get_server_by_id(result[3]),
id=result[0]
)