Added user warnings to WI
This commit is contained in:
@@ -18,6 +18,10 @@ class UserWarningsRepositoryABC(ABC):
|
||||
def get_user_warnings_by_id(self, id: int) -> UserWarnings:
|
||||
pass
|
||||
|
||||
@abstractmethod
|
||||
def get_user_warnings_by_server_id(self, server_id: int) -> List[UserWarnings]:
|
||||
pass
|
||||
|
||||
@abstractmethod
|
||||
def get_user_warnings_by_user_id(self, user_id: int) -> List[UserWarnings]:
|
||||
pass
|
||||
|
@@ -59,6 +59,17 @@ class UserWarnings(TableABC):
|
||||
"""
|
||||
)
|
||||
|
||||
@staticmethod
|
||||
def get_select_by_server_id_string(id: int) -> str:
|
||||
return str(
|
||||
f"""
|
||||
SELECT `UserWarnings`.* FROM `UserWarnings`
|
||||
INNER JOIN `Users`
|
||||
ON `Users`.`UserId` = `UserWarnings`.`UserId`
|
||||
WHERE `Users`.`ServerId` = {id};
|
||||
"""
|
||||
)
|
||||
|
||||
@staticmethod
|
||||
def get_select_by_user_id_string(id: int) -> str:
|
||||
return str(
|
||||
|
@@ -56,6 +56,20 @@ class UserWarningsRepositoryService(UserWarningsRepositoryABC):
|
||||
self._logger.trace(__name__, f"Send SQL command: {UserWarnings.get_select_by_id_string(id)}")
|
||||
return self._from_result(self._context.select(UserWarnings.get_select_by_id_string(id))[0])
|
||||
|
||||
def get_user_warnings_by_server_id(self, server_id: int) -> List[UserWarnings]:
|
||||
self._logger.trace(
|
||||
__name__,
|
||||
f"Send SQL command: {UserWarnings.get_select_by_server_id_string(server_id)}",
|
||||
)
|
||||
|
||||
return List(
|
||||
UserWarnings,
|
||||
[
|
||||
self._from_result(warning)
|
||||
for warning in self._context.select(UserWarnings.get_select_by_server_id_string(server_id))
|
||||
],
|
||||
)
|
||||
|
||||
def get_user_warnings_by_user_id(self, user_id: int) -> List[UserWarnings]:
|
||||
self._logger.trace(
|
||||
__name__,
|
||||
|
@@ -29,6 +29,9 @@ type Server implements TableWithHistoryQuery {
|
||||
activeUserCount: Int
|
||||
users(filter: UserFilter, page: Page, sort: Sort): [User]
|
||||
|
||||
userWarningCount: Int
|
||||
userWarnings(filter: UserWarningFilter, page: Page, sort: Sort): [UserWarning]
|
||||
|
||||
achievementCount: Int
|
||||
achievements(filter: AchievementFilter, page: Page, sort: Sort): [Achievement]
|
||||
|
||||
|
@@ -86,5 +86,9 @@ class UserMutation(QueryABC):
|
||||
continue
|
||||
|
||||
member = self._bot.get_guild(user.server.discord_id).get_member(user.discord_id)
|
||||
author = self._users.get_user_by_id(int(warning["author"]))
|
||||
if "author" not in warning:
|
||||
author = Route.get_user().users.where(lambda u: u.server.id == user.server.id).single()
|
||||
else:
|
||||
author = self._users.get_user_by_id(int(warning["author"]))
|
||||
|
||||
self._user_warning_service.add_warnings(member, warning["description"], author.discord_id)
|
||||
|
@@ -17,6 +17,7 @@ from bot_data.abc.user_joined_voice_channel_repository_abc import (
|
||||
UserJoinedVoiceChannelRepositoryABC,
|
||||
)
|
||||
from bot_data.abc.user_repository_abc import UserRepositoryABC
|
||||
from bot_data.abc.user_warnings_repository_abc import UserWarningsRepositoryABC
|
||||
from bot_data.model.server import Server
|
||||
from bot_data.model.server_config import ServerConfig
|
||||
from bot_data.model.server_history import ServerHistory
|
||||
@@ -28,6 +29,7 @@ from bot_graphql.filter.level_filter import LevelFilter
|
||||
from bot_graphql.filter.scheduled_event_filter import ScheduledEventFilter
|
||||
from bot_graphql.filter.short_role_name_filter import ShortRoleNameFilter
|
||||
from bot_graphql.filter.user_filter import UserFilter
|
||||
from bot_graphql.filter.user_warning_filter import UserWarningFilter
|
||||
from bot_graphql.model.server_statistics import ServerStatistics
|
||||
|
||||
|
||||
@@ -48,6 +50,7 @@ class ServerQuery(DataQueryWithHistoryABC):
|
||||
short_role_names: ShortRoleNameRepositoryABC,
|
||||
scheduled_events: ScheduledEventRepositoryABC,
|
||||
server_configs: ServerConfigRepositoryABC,
|
||||
user_warnings: UserWarningsRepositoryABC,
|
||||
):
|
||||
DataQueryWithHistoryABC.__init__(self, "Server", "ServersHistory", ServerHistory, db)
|
||||
|
||||
@@ -89,6 +92,11 @@ class ServerQuery(DataQueryWithHistoryABC):
|
||||
lambda server, *_: self._users.get_users_with_activity_by_server_id(server.id),
|
||||
UserFilter,
|
||||
)
|
||||
self.add_collection(
|
||||
"userWarning",
|
||||
lambda server, *_: user_warnings.get_user_warnings_by_server_id(server.id),
|
||||
UserWarningFilter,
|
||||
)
|
||||
self.add_collection(
|
||||
"gameServer",
|
||||
lambda server, *_: game_servers.get_game_servers_by_server_id(server.id),
|
||||
|
Reference in New Issue
Block a user