Added played_on_game_server achievement logic #268_achievements
This commit is contained in:
@@ -26,6 +26,7 @@ from bot_graphql.mutations.auto_role_rule_mutation import AutoRoleRuleMutation
|
||||
from bot_graphql.mutations.level_mutation import LevelMutation
|
||||
from bot_graphql.mutations.user_joined_game_server_mutation import UserJoinedGameServerMutation
|
||||
from bot_graphql.mutations.user_mutation import UserMutation
|
||||
from bot_graphql.queries.achievement_attribute_query import AchievementAttributeQuery
|
||||
from bot_graphql.queries.achievement_query import AchievementQuery
|
||||
from bot_graphql.queries.auto_role_history_query import AutoRoleHistoryQuery
|
||||
from bot_graphql.queries.auto_role_query import AutoRoleQuery
|
||||
@@ -33,6 +34,7 @@ from bot_graphql.queries.auto_role_rule_history_query import AutoRoleRuleHistory
|
||||
from bot_graphql.queries.auto_role_rule_query import AutoRoleRuleQuery
|
||||
from bot_graphql.queries.client_history_query import ClientHistoryQuery
|
||||
from bot_graphql.queries.client_query import ClientQuery
|
||||
from bot_graphql.queries.game_server_query import GameServerQuery
|
||||
from bot_graphql.queries.known_user_history_query import KnownUserHistoryQuery
|
||||
from bot_graphql.queries.known_user_query import KnownUserQuery
|
||||
from bot_graphql.queries.level_history_query import LevelHistoryQuery
|
||||
@@ -65,6 +67,8 @@ class GraphQLModule(ModuleABC):
|
||||
services.add_singleton(Mutation)
|
||||
|
||||
# queries
|
||||
services.add_transient(QueryABC, AchievementAttributeQuery)
|
||||
services.add_transient(QueryABC, AchievementQuery)
|
||||
services.add_transient(QueryABC, AutoRoleHistoryQuery)
|
||||
services.add_transient(QueryABC, AutoRoleQuery)
|
||||
services.add_transient(QueryABC, AutoRoleRuleHistoryQuery)
|
||||
@@ -77,9 +81,9 @@ class GraphQLModule(ModuleABC):
|
||||
services.add_transient(QueryABC, LevelQuery)
|
||||
services.add_transient(QueryABC, ServerHistoryQuery)
|
||||
services.add_transient(QueryABC, ServerQuery)
|
||||
services.add_transient(QueryABC, GameServerQuery)
|
||||
services.add_transient(QueryABC, UserHistoryQuery)
|
||||
services.add_transient(QueryABC, UserQuery)
|
||||
services.add_transient(QueryABC, AchievementQuery)
|
||||
services.add_transient(QueryABC, UserJoinedServerHistoryQuery)
|
||||
services.add_transient(QueryABC, UserJoinedServerQuery)
|
||||
services.add_transient(QueryABC, UserJoinedVoiceChannelHistoryQuery)
|
||||
|
@@ -1,6 +1,9 @@
|
||||
type AchievementAttribute {
|
||||
name: String
|
||||
type: String
|
||||
|
||||
createdAt: String
|
||||
modifiedAt: String
|
||||
}
|
||||
|
||||
type Achievement implements TableWithHistoryQuery {
|
||||
|
@@ -17,6 +17,9 @@ type Query {
|
||||
serverCount: Int
|
||||
servers(filter: ServerFilter, page: Page, sort: Sort): [Server]
|
||||
|
||||
gameServerCount: Int
|
||||
gameServers: [GameServer]
|
||||
|
||||
userJoinedServerCount: Int
|
||||
userJoinedServers(filter: UserJoinedServerFilter, page: Page, sort: Sort): [UserJoinedServer]
|
||||
|
||||
@@ -31,8 +34,8 @@ type Query {
|
||||
|
||||
achievementCount: Int
|
||||
achievements(filter: AchievementFilter, page: Page, sort: Sort): [Achievement]
|
||||
AchievementAttributes: [AchievementAttribute]
|
||||
AchievementOperators: [String]
|
||||
achievementAttributes: [AchievementAttribute]
|
||||
achievementOperators: [String]
|
||||
|
||||
guilds(filter: GuildFilter): [Guild]
|
||||
}
|
@@ -1,3 +1,12 @@
|
||||
type GameServer {
|
||||
id: ID
|
||||
name: String
|
||||
server: Server
|
||||
|
||||
createdAt: String
|
||||
modifiedAt: String
|
||||
}
|
||||
|
||||
type Server implements TableWithHistoryQuery {
|
||||
id: ID
|
||||
discordId: String
|
||||
@@ -13,6 +22,9 @@ type Server implements TableWithHistoryQuery {
|
||||
levelCount: Int
|
||||
levels(filter: LevelFilter, page: Page, sort: Sort): [Level]
|
||||
|
||||
gameServerCount: Int
|
||||
gameServers: [GameServer]
|
||||
|
||||
userCount: Int
|
||||
users(filter: UserFilter, page: Page, sort: Sort): [User]
|
||||
|
||||
|
@@ -1,7 +1,7 @@
|
||||
from bot_graphql.abc.data_query_abc import DataQueryABC
|
||||
|
||||
|
||||
class AchievementQuery(DataQueryABC):
|
||||
class AchievementAttributeQuery(DataQueryABC):
|
||||
def __init__(
|
||||
self,
|
||||
):
|
||||
|
10
kdb-bot/src/bot_graphql/queries/game_server_query.py
Normal file
10
kdb-bot/src/bot_graphql/queries/game_server_query.py
Normal file
@@ -0,0 +1,10 @@
|
||||
from bot_graphql.abc.data_query_abc import DataQueryABC
|
||||
|
||||
|
||||
class GameServerQuery(DataQueryABC):
|
||||
def __init__(self):
|
||||
DataQueryABC.__init__(self, "GameServer")
|
||||
|
||||
self.set_field("id", lambda x, *_: x.id)
|
||||
self.set_field("name", lambda x, *_: x.name)
|
||||
self.set_field("server", lambda x, *_: x.server)
|
@@ -4,6 +4,7 @@ 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.game_server_repository_abc import GameServerRepositoryABC
|
||||
from bot_data.abc.level_repository_abc import LevelRepositoryABC
|
||||
from bot_data.abc.user_joined_server_repository_abc import UserJoinedServerRepositoryABC
|
||||
from bot_data.abc.user_joined_voice_channel_repository_abc import UserJoinedVoiceChannelRepositoryABC
|
||||
@@ -26,6 +27,7 @@ class ServerQuery(DataQueryWithHistoryABC):
|
||||
auto_roles: AutoRoleRepositoryABC,
|
||||
clients: ClientRepositoryABC,
|
||||
levels: LevelRepositoryABC,
|
||||
game_servers: GameServerRepositoryABC,
|
||||
users: UserRepositoryABC,
|
||||
ujs: UserJoinedServerRepositoryABC,
|
||||
ujvs: UserJoinedVoiceChannelRepositoryABC,
|
||||
@@ -56,6 +58,7 @@ 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("gameServer", lambda server, *_: game_servers.get_game_servers_by_server_id(server.id))
|
||||
self.add_collection(
|
||||
"achievement", lambda server, *_: achievements.get_achievements_by_server_id(server.id), AchievementFilter
|
||||
)
|
||||
|
@@ -3,6 +3,7 @@ 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.game_server_repository_abc import GameServerRepositoryABC
|
||||
from bot_data.abc.known_user_repository_abc import KnownUserRepositoryABC
|
||||
from bot_data.abc.level_repository_abc import LevelRepositoryABC
|
||||
from bot_data.abc.server_repository_abc import ServerRepositoryABC
|
||||
@@ -33,6 +34,7 @@ class Query(QueryABC):
|
||||
known_users: KnownUserRepositoryABC,
|
||||
levels: LevelRepositoryABC,
|
||||
servers: ServerRepositoryABC,
|
||||
game_servers: GameServerRepositoryABC,
|
||||
user_joined_servers: UserJoinedServerRepositoryABC,
|
||||
user_joined_voice_channels: UserJoinedVoiceChannelRepositoryABC,
|
||||
user_joined_game_server: UserJoinedGameServerRepositoryABC,
|
||||
@@ -50,6 +52,7 @@ class Query(QueryABC):
|
||||
self.add_collection("knownUser", lambda *_: known_users.get_users())
|
||||
self.add_collection("level", lambda *_: levels.get_levels(), LevelFilter)
|
||||
self.add_collection("server", lambda *_: servers.get_servers(), ServerFilter)
|
||||
self.add_collection("gameServer", lambda *_: game_servers.get_game_servers())
|
||||
self.add_collection(
|
||||
"userJoinedServer", lambda *_: user_joined_servers.get_user_joined_servers(), UserJoinedServerFilter
|
||||
)
|
||||
@@ -67,8 +70,8 @@ class Query(QueryABC):
|
||||
self.add_collection("achievement", lambda *_: achievements.get_achievements(), AchievementFilter)
|
||||
|
||||
self.set_field("guilds", self._resolve_guilds)
|
||||
self.set_field("AchievementAttributes", lambda x, *_: achievement_service.get_attributes())
|
||||
self.set_field("AchievementOperators", lambda x, *_: ["==", "!=", "<=", ">=", "<", ">"])
|
||||
self.set_field("achievementAttributes", lambda x, *_: achievement_service.get_attributes())
|
||||
self.set_field("achievementOperators", lambda x, *_: achievement_service.get_operators())
|
||||
|
||||
def _resolve_guilds(self, *_, filter=None):
|
||||
if filter is None or "id" not in filter:
|
||||
|
Reference in New Issue
Block a user