First step to add achievements to frontend #268_achievements

This commit is contained in:
2023-07-12 11:56:52 +02:00
parent f312a2d776
commit a0d38bec49
16 changed files with 708 additions and 3 deletions

View File

@@ -16,6 +16,9 @@ type Server implements TableWithHistoryQuery {
userCount: Int
users(filter: UserFilter, page: Page, sort: Sort): [User]
achievementCount: Int
achievements(filter: AchievementFilter, page: Page, sort: Sort): [Achievement]
createdAt: String
modifiedAt: String

View File

@@ -1,6 +1,7 @@
from cpl_core.database.context import DatabaseContextABC
from cpl_discord.service import DiscordBotServiceABC
from bot_data.abc.achievement_repository_abc import AchievementRepositoryABC
from bot_data.abc.auto_role_repository_abc import AutoRoleRepositoryABC
from bot_data.abc.client_repository_abc import ClientRepositoryABC
from bot_data.abc.level_repository_abc import LevelRepositoryABC
@@ -9,8 +10,8 @@ from bot_data.abc.user_joined_voice_channel_repository_abc import UserJoinedVoic
from bot_data.abc.user_repository_abc import UserRepositoryABC
from bot_data.model.server import Server
from bot_data.model.server_history import ServerHistory
from bot_graphql.abc.data_query_abc import DataQueryABC
from bot_graphql.abc.data_query_with_history_abc import DataQueryWithHistoryABC
from bot_graphql.filter.achievement_filter import AchievementFilter
from bot_graphql.filter.auto_role_filter import AutoRoleFilter
from bot_graphql.filter.client_filter import ClientFilter
from bot_graphql.filter.level_filter import LevelFilter
@@ -28,6 +29,7 @@ class ServerQuery(DataQueryWithHistoryABC):
users: UserRepositoryABC,
ujs: UserJoinedServerRepositoryABC,
ujvs: UserJoinedVoiceChannelRepositoryABC,
achievements: AchievementRepositoryABC,
):
DataQueryWithHistoryABC.__init__(self, "Server", "ServersHistory", ServerHistory, db)
@@ -54,6 +56,9 @@ class ServerQuery(DataQueryWithHistoryABC):
)
self.add_collection("level", lambda server, *_: self._levels.get_levels_by_server_id(server.id), LevelFilter)
self.add_collection("user", lambda server, *_: self._users.get_users_by_server_id(server.id), UserFilter)
self.add_collection(
"achievement", lambda server, *_: achievements.get_achievements_by_server_id(server.id), AchievementFilter
)
@staticmethod
def resolve_id(server: Server, *_):