Added repo #378
This commit is contained in:
parent
0b767fcb68
commit
12f956f4c3
40
kdb-bot/src/bot_data/abc/short_role_name_repository_abc.py
Normal file
40
kdb-bot/src/bot_data/abc/short_role_name_repository_abc.py
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
from abc import ABC, abstractmethod
|
||||||
|
from typing import Optional
|
||||||
|
|
||||||
|
from cpl_query.extension import List
|
||||||
|
|
||||||
|
from bot_data.model.short_role_name import ShortRoleName
|
||||||
|
|
||||||
|
|
||||||
|
class ShortRoleNameRepositoryABC(ABC):
|
||||||
|
@abstractmethod
|
||||||
|
def __init__(self):
|
||||||
|
pass
|
||||||
|
|
||||||
|
@abstractmethod
|
||||||
|
def get_short_role_names(self) -> List[ShortRoleName]:
|
||||||
|
pass
|
||||||
|
|
||||||
|
@abstractmethod
|
||||||
|
def get_short_role_name_by_id(self, id: int) -> ShortRoleName:
|
||||||
|
pass
|
||||||
|
|
||||||
|
@abstractmethod
|
||||||
|
def find_short_role_name_by_role_id(self, role_id: int) -> Optional[ShortRoleName]:
|
||||||
|
pass
|
||||||
|
|
||||||
|
@abstractmethod
|
||||||
|
def get_short_role_names_by_server_id(self, id: int) -> List[ShortRoleName]:
|
||||||
|
pass
|
||||||
|
|
||||||
|
@abstractmethod
|
||||||
|
def add_short_role_name(self, short_role_name: ShortRoleName):
|
||||||
|
pass
|
||||||
|
|
||||||
|
@abstractmethod
|
||||||
|
def update_short_role_name(self, short_role_name: ShortRoleName):
|
||||||
|
pass
|
||||||
|
|
||||||
|
@abstractmethod
|
||||||
|
def delete_short_role_name(self, short_role_name: ShortRoleName):
|
||||||
|
pass
|
@ -16,6 +16,7 @@ from bot_data.abc.known_user_repository_abc import KnownUserRepositoryABC
|
|||||||
from bot_data.abc.level_repository_abc import LevelRepositoryABC
|
from bot_data.abc.level_repository_abc import LevelRepositoryABC
|
||||||
from bot_data.abc.server_config_repository_abc import ServerConfigRepositoryABC
|
from bot_data.abc.server_config_repository_abc import ServerConfigRepositoryABC
|
||||||
from bot_data.abc.server_repository_abc import ServerRepositoryABC
|
from bot_data.abc.server_repository_abc import ServerRepositoryABC
|
||||||
|
from bot_data.abc.short_role_name_repository_abc import ShortRoleNameRepositoryABC
|
||||||
from bot_data.abc.technician_config_repository_abc import TechnicianConfigRepositoryABC
|
from bot_data.abc.technician_config_repository_abc import TechnicianConfigRepositoryABC
|
||||||
from bot_data.abc.user_game_ident_repository_abc import UserGameIdentRepositoryABC
|
from bot_data.abc.user_game_ident_repository_abc import UserGameIdentRepositoryABC
|
||||||
from bot_data.abc.user_joined_game_server_repository_abc import UserJoinedGameServerRepositoryABC
|
from bot_data.abc.user_joined_game_server_repository_abc import UserJoinedGameServerRepositoryABC
|
||||||
@ -41,6 +42,7 @@ from bot_data.service.seeder_service import SeederService
|
|||||||
from bot_data.service.server_config_repository_service import ServerConfigRepositoryService
|
from bot_data.service.server_config_repository_service import ServerConfigRepositoryService
|
||||||
from bot_data.service.server_config_seeder import ServerConfigSeeder
|
from bot_data.service.server_config_seeder import ServerConfigSeeder
|
||||||
from bot_data.service.server_repository_service import ServerRepositoryService
|
from bot_data.service.server_repository_service import ServerRepositoryService
|
||||||
|
from bot_data.service.short_role_name_repository_service import ShortRoleNameRepositoryService
|
||||||
from bot_data.service.technician_config_repository_service import TechnicianConfigRepositoryService
|
from bot_data.service.technician_config_repository_service import TechnicianConfigRepositoryService
|
||||||
from bot_data.service.technician_config_seeder import TechnicianConfigSeeder
|
from bot_data.service.technician_config_seeder import TechnicianConfigSeeder
|
||||||
from bot_data.service.user_game_ident_repository_service import UserGameIdentRepositoryService
|
from bot_data.service.user_game_ident_repository_service import UserGameIdentRepositoryService
|
||||||
@ -89,6 +91,7 @@ class DataModule(ModuleABC):
|
|||||||
services.add_transient(AchievementRepositoryABC, AchievementRepositoryService)
|
services.add_transient(AchievementRepositoryABC, AchievementRepositoryService)
|
||||||
services.add_transient(TechnicianConfigRepositoryABC, TechnicianConfigRepositoryService)
|
services.add_transient(TechnicianConfigRepositoryABC, TechnicianConfigRepositoryService)
|
||||||
services.add_transient(ServerConfigRepositoryABC, ServerConfigRepositoryService)
|
services.add_transient(ServerConfigRepositoryABC, ServerConfigRepositoryService)
|
||||||
|
services.add_transient(ShortRoleNameRepositoryABC, ShortRoleNameRepositoryService)
|
||||||
|
|
||||||
services.add_transient(SeederService)
|
services.add_transient(SeederService)
|
||||||
services.add_transient(DataSeederABC, TechnicianConfigSeeder)
|
services.add_transient(DataSeederABC, TechnicianConfigSeeder)
|
||||||
|
@ -84,6 +84,15 @@ class ShortRoleName(TableABC):
|
|||||||
"""
|
"""
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def get_select_by_role_id_string(id: int) -> str:
|
||||||
|
return str(
|
||||||
|
f"""
|
||||||
|
SELECT * FROM `ShortRoleNames`
|
||||||
|
WHERE `DiscordRoleId` = {id};
|
||||||
|
"""
|
||||||
|
)
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def get_select_by_server_id_string(id: int) -> str:
|
def get_select_by_server_id_string(id: int) -> str:
|
||||||
return str(
|
return str(
|
||||||
@ -98,10 +107,11 @@ class ShortRoleName(TableABC):
|
|||||||
return str(
|
return str(
|
||||||
f"""
|
f"""
|
||||||
INSERT INTO `ShortRoleNames` (
|
INSERT INTO `ShortRoleNames` (
|
||||||
`Name`, `DiscordRoleId`, `ServerId`
|
`Name`, `DiscordRoleId`, `Position`, `ServerId`
|
||||||
) VALUES (
|
) VALUES (
|
||||||
'{self._name}',
|
'{self._name}',
|
||||||
{self._discord_role_id}
|
{self._discord_role_id}
|
||||||
|
'{self._position}',
|
||||||
{self._server.id},
|
{self._server.id},
|
||||||
);
|
);
|
||||||
"""
|
"""
|
||||||
@ -114,6 +124,7 @@ class ShortRoleName(TableABC):
|
|||||||
UPDATE `ShortRoleNames`
|
UPDATE `ShortRoleNames`
|
||||||
SET `Name` = '{self._name}',
|
SET `Name` = '{self._name}',
|
||||||
`DiscordRoleId` = {self._discord_role_id},
|
`DiscordRoleId` = {self._discord_role_id},
|
||||||
|
`Position` = '{self._position}',
|
||||||
`ServerId` = {self._server.id}
|
`ServerId` = {self._server.id}
|
||||||
WHERE `Id` = {self._id};
|
WHERE `Id` = {self._id};
|
||||||
"""
|
"""
|
||||||
|
@ -0,0 +1,93 @@
|
|||||||
|
from typing import Optional
|
||||||
|
|
||||||
|
from cpl_core.database.context import DatabaseContextABC
|
||||||
|
from cpl_query.extension import List
|
||||||
|
|
||||||
|
from bot_core.logging.database_logger import DatabaseLogger
|
||||||
|
from bot_data.abc.server_repository_abc import ServerRepositoryABC
|
||||||
|
from bot_data.abc.short_role_name_repository_abc import ShortRoleNameRepositoryABC
|
||||||
|
from bot_data.model.short_role_name import ShortRoleName
|
||||||
|
from bot_data.model.short_role_name_position_enum import ShortRoleNamePositionEnum
|
||||||
|
|
||||||
|
|
||||||
|
class ShortRoleNameRepositoryService(ShortRoleNameRepositoryABC):
|
||||||
|
def __init__(
|
||||||
|
self,
|
||||||
|
logger: DatabaseLogger,
|
||||||
|
db_context: DatabaseContextABC,
|
||||||
|
servers: ServerRepositoryABC,
|
||||||
|
):
|
||||||
|
self._logger = logger
|
||||||
|
self._context = db_context
|
||||||
|
|
||||||
|
self._servers = servers
|
||||||
|
|
||||||
|
ShortRoleNameRepositoryABC.__init__(self)
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def _get_value_from_result(value: any) -> Optional[any]:
|
||||||
|
if isinstance(value, str) and "NULL" in value:
|
||||||
|
return None
|
||||||
|
|
||||||
|
return value
|
||||||
|
|
||||||
|
def _short_role_name_from_result(self, sql_result: tuple) -> ShortRoleName:
|
||||||
|
return ShortRoleName(
|
||||||
|
self._get_value_from_result(sql_result[1]), # name
|
||||||
|
int(self._get_value_from_result(sql_result[2])), # role_id
|
||||||
|
ShortRoleNamePositionEnum(self._get_value_from_result(sql_result[3])), # position
|
||||||
|
self._servers.get_server_by_id(sql_result[4]), # server
|
||||||
|
self._get_value_from_result(sql_result[5]), # created_at
|
||||||
|
self._get_value_from_result(sql_result[6]), # modified_at
|
||||||
|
id=self._get_value_from_result(sql_result[0]), # id
|
||||||
|
)
|
||||||
|
|
||||||
|
def get_short_role_names(self) -> List[ShortRoleName]:
|
||||||
|
short_role_names = List(ShortRoleName)
|
||||||
|
self._logger.trace(__name__, f"Send SQL command: {ShortRoleName.get_select_all_string()}")
|
||||||
|
results = self._context.select(ShortRoleName.get_select_all_string())
|
||||||
|
for result in results:
|
||||||
|
self._logger.trace(__name__, f"Get short_role_name with id {result[0]}")
|
||||||
|
short_role_names.append(self._short_role_name_from_result(result))
|
||||||
|
|
||||||
|
return short_role_names
|
||||||
|
|
||||||
|
def get_short_role_name_by_id(self, id: int) -> ShortRoleName:
|
||||||
|
self._logger.trace(__name__, f"Send SQL command: {ShortRoleName.get_select_by_id_string(id)}")
|
||||||
|
result = self._context.select(ShortRoleName.get_select_by_id_string(id))[0]
|
||||||
|
|
||||||
|
return self._short_role_name_from_result(result)
|
||||||
|
|
||||||
|
def find_short_role_name_by_role_id(self, role_id: int) -> Optional[ShortRoleName]:
|
||||||
|
self._logger.trace(__name__, f"Send SQL command: {ShortRoleName.get_select_by_role_id_string(role_id)}")
|
||||||
|
result = self._context.select(ShortRoleName.get_select_by_role_id_string(role_id))
|
||||||
|
if result is None or len(result) == 0:
|
||||||
|
return None
|
||||||
|
|
||||||
|
return self._short_role_name_from_result(result[0])
|
||||||
|
|
||||||
|
def get_short_role_names_by_server_id(self, server_id: int) -> List[ShortRoleName]:
|
||||||
|
short_role_names = List(ShortRoleName)
|
||||||
|
self._logger.trace(
|
||||||
|
__name__,
|
||||||
|
f"Send SQL command: {ShortRoleName.get_select_by_server_id_string(server_id)}",
|
||||||
|
)
|
||||||
|
results = self._context.select(ShortRoleName.get_select_by_server_id_string(server_id))
|
||||||
|
|
||||||
|
for result in results:
|
||||||
|
self._logger.trace(__name__, f"Get short_role_name with id {result[0]}")
|
||||||
|
short_role_names.append(self._short_role_name_from_result(result))
|
||||||
|
|
||||||
|
return short_role_names
|
||||||
|
|
||||||
|
def add_short_role_name(self, short_role_name: ShortRoleName):
|
||||||
|
self._logger.trace(__name__, f"Send SQL command: {short_role_name.insert_string}")
|
||||||
|
self._context.cursor.execute(short_role_name.insert_string)
|
||||||
|
|
||||||
|
def update_short_role_name(self, short_role_name: ShortRoleName):
|
||||||
|
self._logger.trace(__name__, f"Send SQL command: {short_role_name.udpate_string}")
|
||||||
|
self._context.cursor.execute(short_role_name.udpate_string)
|
||||||
|
|
||||||
|
def delete_short_role_name(self, short_role_name: ShortRoleName):
|
||||||
|
self._logger.trace(__name__, f"Send SQL command: {short_role_name.delete_string}")
|
||||||
|
self._context.cursor.execute(short_role_name.delete_string)
|
Loading…
Reference in New Issue
Block a user