Added history tables to graphql #246

This commit is contained in:
2023-03-07 17:07:50 +01:00
parent 325a17b5a8
commit 69ce659328
40 changed files with 1046 additions and 67 deletions

View File

@@ -0,0 +1,10 @@
from bot_graphql.abc.query_abc import QueryABC
class HistoryQueryABC(QueryABC):
def __init__(self, name: str):
QueryABC.__init__(self, f"{name}History")
self.set_field("deleted", lambda x, *_: x.deleted)
self.set_field("dateFrom", lambda x, *_: x.date_from)
self.set_field("dateTo", lambda x, *_: x.date_to)

View File

@@ -24,15 +24,24 @@ 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.auto_role_history_query import AutoRoleHistoryQuery
from bot_graphql.queries.auto_role_query import AutoRoleQuery
from bot_graphql.queries.auto_role_rule_history_query import AutoRoleRuleHistoryQuery
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.known_user_history_query import KnownUserHistoryQuery
from bot_graphql.queries.known_user_query import KnownUserQuery
from bot_graphql.queries.level_history_query import LevelHistoryQuery
from bot_graphql.queries.level_query import LevelQuery
from bot_graphql.queries.server_history_query import ServerHistoryQuery
from bot_graphql.queries.server_query import ServerQuery
from bot_graphql.queries.user_history_query import UserHistoryQuery
from bot_graphql.queries.user_joined_game_server_history_query import UserJoinedGameServerHistoryQuery
from bot_graphql.queries.user_joined_game_server_query import UserJoinedGameServerQuery
from bot_graphql.queries.user_joined_server_history_query import UserJoinedServerHistoryQuery
from bot_graphql.queries.user_joined_server_query import UserJoinedServerQuery
from bot_graphql.queries.user_joined_voice_channel_history_query import UserJoinedVoiceChannelHistoryQuery
from bot_graphql.queries.user_joined_voice_channel_query import UserJoinedVoiceChannelQuery
from bot_graphql.queries.user_query import UserQuery
from bot_graphql.query import Query
@@ -53,16 +62,25 @@ class GraphQLModule(ModuleABC):
services.add_singleton(Mutation)
# queries
services.add_transient(QueryABC, AutoRoleHistoryQuery)
services.add_transient(QueryABC, AutoRoleQuery)
services.add_transient(QueryABC, AutoRoleRuleHistoryQuery)
services.add_transient(QueryABC, AutoRoleRuleQuery)
services.add_transient(QueryABC, ClientHistoryQuery)
services.add_transient(QueryABC, ClientQuery)
services.add_transient(QueryABC, KnownUserHistoryQuery)
services.add_transient(QueryABC, KnownUserQuery)
services.add_transient(QueryABC, LevelQuery)
services.add_transient(QueryABC, LevelHistoryQuery)
services.add_transient(QueryABC, LevelQuery)
services.add_transient(QueryABC, ServerHistoryQuery)
services.add_transient(QueryABC, ServerQuery)
services.add_transient(QueryABC, UserHistoryQuery)
services.add_transient(QueryABC, UserQuery)
services.add_transient(QueryABC, UserJoinedServerHistoryQuery)
services.add_transient(QueryABC, UserJoinedServerQuery)
services.add_transient(QueryABC, UserJoinedVoiceChannelHistoryQuery)
services.add_transient(QueryABC, UserJoinedVoiceChannelQuery)
services.add_transient(QueryABC, UserJoinedGameServerHistoryQuery)
services.add_transient(QueryABC, UserJoinedGameServerQuery)
# filters

View File

@@ -1,4 +1,4 @@
type AutoRole implements TableQuery {
type AutoRole implements TableWithHistoryQuery {
id: ID
channelId: String
channelName: String
@@ -11,6 +11,21 @@ type AutoRole implements TableQuery {
createdAt: String
modifiedAt: String
history: [AutoRoleHistory]
}
type AutoRoleHistory implements HistoryTableQuery {
id: ID
channelId: String
channelName: String
messageId: String
server: ID
deleted: Boolean
dateFrom: String
dateTo: String
}
input AutoRoleFilter {

View File

@@ -1,4 +1,4 @@
type AutoRoleRule implements TableQuery {
type AutoRoleRule implements TableWithHistoryQuery {
id: ID
emojiName: String
roleId: String
@@ -8,6 +8,21 @@ type AutoRoleRule implements TableQuery {
createdAt: String
modifiedAt: String
history: [AutoRoleRuleHistory]
}
type AutoRoleRuleHistory implements HistoryTableQuery {
id: ID
emojiName: String
roleId: String
roleName: String
autoRole: ID
deleted: Boolean
dateFrom: String
dateTo: String
}
input AutoRoleRuleFilter {

View File

@@ -12,6 +12,25 @@ type Client implements TableQuery {
createdAt: String
modifiedAt: String
history: [ClientHistory]
}
type ClientHistory implements HistoryTableQuery {
id: ID
discordId: String
name: String
sentMessageCount: Int
receivedMessageCount: Int
deletedMessageCount: Int
receivedCommandCount: Int
movedUsersCount: Int
server: ID
deleted: Boolean
dateFrom: String
dateTo: String
}
input ClientFilter {

View File

@@ -1,7 +1,18 @@
type KnownUser implements TableQuery {
type KnownUser implements TableWithHistoryQuery {
id: ID
discordId: String
createdAt: String
modifiedAt: String
history: [KnownUserHistory]
}
type KnownUserHistory implements HistoryTableQuery {
id: ID
discordId: String
deleted: Boolean
dateFrom: String
dateTo: String
}

View File

@@ -1,4 +1,4 @@
type Server implements TableQuery {
type Server implements TableWithHistoryQuery {
id: ID
discordId: String
name: String
@@ -18,6 +18,19 @@ type Server implements TableQuery {
createdAt: String
modifiedAt: String
history: [HistoryTableQuery]
}
type ServerHistory implements HistoryTableQuery {
id: ID
discordId: String
name: String
iconURL: String
deleted: Boolean
dateFrom: String
dateTo: String
}
input ServerFilter {

View File

@@ -1,4 +1,4 @@
type User implements TableQuery {
type User implements TableWithHistoryQuery {
id: ID
discordId: String
name: String
@@ -20,6 +20,21 @@ type User implements TableQuery {
createdAt: String
modifiedAt: String
history: [UserHistory]
}
type UserHistory implements HistoryTableQuery {
id: ID
discordId: String
xp: Int
server: ID
leftServer: Boolean
deleted: Boolean
dateFrom: String
dateTo: String
}
input UserFilter {

View File

@@ -1,4 +1,4 @@
type UserJoinedGameServer implements TableQuery {
type UserJoinedGameServer implements TableWithHistoryQuery {
id: ID
gameServer: String
user: User
@@ -8,6 +8,21 @@ type UserJoinedGameServer implements TableQuery {
createdAt: String
modifiedAt: String
history: [UserJoinedGameServerHistory]
}
type UserJoinedGameServerHistory implements HistoryTableQuery {
id: ID
gameServer: String
user: ID
time: Float
joinedOn: String
leavedOn: String
deleted: Boolean
dateFrom: String
dateTo: String
}
input UserJoinedGameServerFilter {

View File

@@ -1,4 +1,4 @@
type UserJoinedServer implements TableQuery {
type UserJoinedServer implements TableWithHistoryQuery {
id: ID
user: User
joinedOn: String
@@ -6,6 +6,19 @@ type UserJoinedServer implements TableQuery {
createdAt: String
modifiedAt: String
history: [UserJoinedServerHistory]
}
type UserJoinedServerHistory implements HistoryTableQuery {
id: ID
user: ID
joinedOn: String
leavedOn: String
deleted: Boolean
dateFrom: String
dateTo: String
}
input UserJoinedServerFilter {

View File

@@ -1,4 +1,4 @@
type UserJoinedVoiceChannel implements TableQuery {
type UserJoinedVoiceChannel implements TableWithHistoryQuery {
id: ID
channelId: String
channelName: String
@@ -9,6 +9,22 @@ type UserJoinedVoiceChannel implements TableQuery {
createdAt: String
modifiedAt: String
history: [UserJoinedVoiceChannelHistory]
}
type UserJoinedVoiceChannelHistory implements HistoryTableQuery {
id: ID
channelId: String
channelName: String
user: ID
time: Float
joinedOn: String
leavedOn: String
deleted: Boolean
dateFrom: String
dateTo: String
}
input UserJoinedVoiceChannelFilter {

View File

@@ -0,0 +1,49 @@
from cpl_discord.service import DiscordBotServiceABC
from bot_data.abc.auto_role_repository_abc import AutoRoleRepositoryABC
from bot_data.abc.server_repository_abc import ServerRepositoryABC
from bot_data.model.auto_role import AutoRole
from bot_graphql.abc.history_query_abc import HistoryQueryABC
from bot_graphql.filter.server_filter import ServerFilter
class AutoRoleHistoryQuery(HistoryQueryABC):
def __init__(
self,
bot: DiscordBotServiceABC,
auto_role_rules: AutoRoleRepositoryABC,
servers: ServerRepositoryABC,
):
HistoryQueryABC.__init__(self, "AutoRole")
self._bot = bot
self._auto_role_rules = auto_role_rules
self._servers = servers
self.set_field("id", self.resolve_id)
self.set_field("channelId", self.resolve_channel_id)
self.set_field("channelName", self.resolve_channel_name)
self.set_field("messageId", self.resolve_message_id)
self.set_field("server", self.resolve_server)
@staticmethod
def resolve_id(x: AutoRole, *_):
return x.id
@staticmethod
def resolve_channel_id(x: AutoRole, *_):
return x.discord_channel_id
@staticmethod
def resolve_channel_name(x: AutoRole, *_):
return x.discord_channel_name
@staticmethod
def resolve_message_id(x: AutoRole, *_):
return x.discord_message_id
def resolve_server(self, x: AutoRole, *_, filter: ServerFilter = None):
if filter is not None:
return filter.filter(self._servers.get_server_by_id(x.server.id))
return self._servers.get_server_by_id(x.server.id)

View File

@@ -1,21 +1,24 @@
from cpl_core.database.context import DatabaseContextABC
from cpl_discord.service import DiscordBotServiceABC
from bot_data.abc.auto_role_repository_abc import AutoRoleRepositoryABC
from bot_data.abc.server_repository_abc import ServerRepositoryABC
from bot_data.model.auto_role import AutoRole
from bot_graphql.abc.data_query_abc import DataQueryABC
from bot_data.model.auto_role_history import AutoRoleHistory
from bot_graphql.abc.data_query_with_history_abc import DataQueryWithHistoryABC
from bot_graphql.filter.auto_role_filter import AutoRoleFilter
from bot_graphql.filter.server_filter import ServerFilter
class AutoRoleQuery(DataQueryABC):
class AutoRoleQuery(DataQueryWithHistoryABC):
def __init__(
self,
bot: DiscordBotServiceABC,
auto_role_rules: AutoRoleRepositoryABC,
servers: ServerRepositoryABC,
db: DatabaseContextABC,
):
DataQueryABC.__init__(self, "AutoRole")
DataQueryWithHistoryABC.__init__(self, "AutoRole", "AutoRolesHistory", AutoRoleHistory, db)
self._bot = bot
self._auto_role_rules = auto_role_rules

View File

@@ -0,0 +1,42 @@
from cpl_discord.service import DiscordBotServiceABC
from bot_data.abc.auto_role_repository_abc import AutoRoleRepositoryABC
from bot_data.model.auto_role_rule import AutoRoleRule
from bot_graphql.abc.history_query_abc import HistoryQueryABC
class AutoRoleRuleHistoryQuery(HistoryQueryABC):
def __init__(
self,
bot: DiscordBotServiceABC,
auto_roles: AutoRoleRepositoryABC,
):
HistoryQueryABC.__init__(self, "AutoRoleRule")
self._bot = bot
self._auto_roles = auto_roles
self.set_field("id", self.resolve_id)
self.set_field("emojiName", self.resolve_emoji_name)
self.set_field("roleId", self.resolve_role_id)
self.set_field("roleName", self.resolve_role_name)
self.set_field("autoRole", self.resolve_auto_role)
@staticmethod
def resolve_id(x: AutoRoleRule, *_):
return x.id
@staticmethod
def resolve_emoji_name(x: AutoRoleRule, *_):
return x.emoji_name
@staticmethod
def resolve_role_id(x: AutoRoleRule, *_):
return x.role_id
@staticmethod
def resolve_role_name(x: AutoRoleRule, *_):
return x.role_name
def resolve_auto_role(self, x: AutoRoleRule, *_):
return self._auto_roles.get_auto_role_by_id(x.auto_role.id)

View File

@@ -1,17 +1,15 @@
from cpl_core.database.context import DatabaseContextABC
from cpl_discord.service import DiscordBotServiceABC
from bot_data.abc.auto_role_repository_abc import AutoRoleRepositoryABC
from bot_data.model.auto_role_rule import AutoRoleRule
from bot_graphql.abc.data_query_abc import DataQueryABC
from bot_data.model.auto_role_rule_history import AutoRoleRuleHistory
from bot_graphql.abc.data_query_with_history_abc import DataQueryWithHistoryABC
class AutoRoleRuleQuery(DataQueryABC):
def __init__(
self,
bot: DiscordBotServiceABC,
auto_roles: AutoRoleRepositoryABC,
):
DataQueryABC.__init__(self, "AutoRoleRule")
class AutoRoleRuleQuery(DataQueryWithHistoryABC):
def __init__(self, bot: DiscordBotServiceABC, auto_roles: AutoRoleRepositoryABC, db: DatabaseContextABC):
DataQueryWithHistoryABC.__init__(self, "AutoRoleRule", "AutoRoleRulesHistory", AutoRoleRuleHistory, db)
self._bot = bot
self._auto_roles = auto_roles

View File

@@ -0,0 +1,60 @@
from cpl_discord.service import DiscordBotServiceABC
from bot_data.model.client import Client
from bot_graphql.abc.history_query_abc import HistoryQueryABC
class ClientHistoryQuery(HistoryQueryABC):
def __init__(
self,
bot: DiscordBotServiceABC,
):
HistoryQueryABC.__init__(self, "Client")
self._bot = bot
self.set_field("id", self.resolve_id)
self.set_field("discordId", self.resolve_discord_id)
self.set_field("name", self.resolve_name)
self.set_field("sentMessageCount", self.resolve_sent_message_count)
self.set_field("receivedMessageCount", self.resolve_received_message_count)
self.set_field("deletedMessageCount", self.resolve_deleted_message_count)
self.set_field("receivedCommandCount", self.resolve_received_command_count)
self.set_field("movedUsersCount", self.resolve_moved_users_count)
self.set_field("server", self.resolve_server)
@staticmethod
def resolve_id(client: Client, *_):
return client.id
@staticmethod
def resolve_discord_id(client: Client, *_):
return client.discord_id
@staticmethod
def resolve_name(client: Client, *_):
return client.name
@staticmethod
def resolve_sent_message_count(client: Client, *_):
return client.sent_message_count
@staticmethod
def resolve_received_message_count(client: Client, *_):
return client.received_command_count
@staticmethod
def resolve_deleted_message_count(client: Client, *_):
return client.deleted_message_count
@staticmethod
def resolve_received_command_count(client: Client, *_):
return client.received_command_count
@staticmethod
def resolve_moved_users_count(client: Client, *_):
return client.moved_users_count
@staticmethod
def resolve_server(client: Client, *_):
return client.server

View File

@@ -1,15 +1,14 @@
from cpl_core.database.context import DatabaseContextABC
from cpl_discord.service import DiscordBotServiceABC
from bot_data.model.client import Client
from bot_graphql.abc.data_query_abc import DataQueryABC
from bot_data.model.client_history import ClientHistory
from bot_graphql.abc.data_query_with_history_abc import DataQueryWithHistoryABC
class ClientQuery(DataQueryABC):
def __init__(
self,
bot: DiscordBotServiceABC,
):
DataQueryABC.__init__(self, "Client")
class ClientQuery(DataQueryWithHistoryABC):
def __init__(self, bot: DiscordBotServiceABC, db: DatabaseContextABC):
DataQueryWithHistoryABC.__init__(self, "Client", "ClientsHistory", ClientHistory, db)
self._bot = bot

View File

@@ -0,0 +1,18 @@
from bot_data.model.known_user import KnownUser
from bot_graphql.abc.history_query_abc import HistoryQueryABC
class KnownUserHistoryQuery(HistoryQueryABC):
def __init__(self):
HistoryQueryABC.__init__(self, "KnownUser")
self.set_field("id", self.resolve_id)
self.set_field("discordId", self.resolve_discord_id)
@staticmethod
def resolve_id(x: KnownUser, *_):
return x.id
@staticmethod
def resolve_discord_id(x: KnownUser, *_):
return x.discord_id

View File

@@ -1,10 +1,13 @@
from cpl_core.database.context import DatabaseContextABC
from bot_data.model.known_user import KnownUser
from bot_graphql.abc.data_query_abc import DataQueryABC
from bot_data.model.known_user_history import KnownUserHistory
from bot_graphql.abc.data_query_with_history_abc import DataQueryWithHistoryABC
class KnownUserQuery(DataQueryABC):
def __init__(self):
DataQueryABC.__init__(self, "KnownUser")
class KnownUserQuery(DataQueryWithHistoryABC):
def __init__(self, db: DatabaseContextABC):
DataQueryWithHistoryABC.__init__(self, "KnownUser", "KnownUsersHistory", KnownUserHistory, db)
self.set_field("id", self.resolve_id)
self.set_field("discordId", self.resolve_discord_id)

View File

@@ -1,11 +1,10 @@
from bot_data.abc.history_table_abc import HistoryTableABC
from bot_data.model.level import Level
from bot_graphql.abc.query_abc import QueryABC
from bot_graphql.abc.history_query_abc import HistoryQueryABC
class LevelHistoryQuery(QueryABC):
class LevelHistoryQuery(HistoryQueryABC):
def __init__(self):
QueryABC.__init__(self, "LevelHistory")
HistoryQueryABC.__init__(self, "Level")
self.set_field("id", self.resolve_id)
self.set_field("name", self.resolve_name)
@@ -13,9 +12,6 @@ class LevelHistoryQuery(QueryABC):
self.set_field("minXp", self.resolve_min_xp)
self.set_field("permissions", self.resolve_permissions)
self.set_field("server", self.resolve_server)
self.set_field("deleted", self.resolve_deleted)
self.set_field("dateFrom", self.resolve_date_from)
self.set_field("dateTo", self.resolve_date_to)
@staticmethod
def resolve_id(level: Level, *_):
@@ -40,15 +36,3 @@ class LevelHistoryQuery(QueryABC):
@staticmethod
def resolve_server(level: Level, *_):
return level.server
@staticmethod
def resolve_deleted(entry: HistoryTableABC, *_):
return entry.deleted
@staticmethod
def resolve_date_from(entry: HistoryTableABC, *_):
return entry.date_from
@staticmethod
def resolve_date_to(entry: HistoryTableABC, *_):
return entry.date_to

View File

@@ -0,0 +1,30 @@
from bot_data.model.server import Server
from bot_graphql.abc.history_query_abc import HistoryQueryABC
class ServerHistoryQuery(HistoryQueryABC):
def __init__(
self,
):
HistoryQueryABC.__init__(self, "Server")
self.set_field("id", self.resolve_id)
self.set_field("discordId", self.resolve_discord_id)
self.set_field("name", self.resolve_name)
self.set_field("iconURL", self.resolve_icon_url)
@staticmethod
def resolve_id(server: Server, *_):
return server.id
@staticmethod
def resolve_discord_id(server: Server, *_):
return server.discord_id
@staticmethod
def resolve_name(server: Server, *_):
return server.name
@staticmethod
def resolve_icon_url(server: Server, *_):
return server.icon_url

View File

@@ -1,3 +1,4 @@
from cpl_core.database.context import DatabaseContextABC
from cpl_discord.service import DiscordBotServiceABC
from bot_data.abc.auto_role_repository_abc import AutoRoleRepositoryABC
@@ -7,17 +8,20 @@ from bot_data.abc.user_joined_server_repository_abc import UserJoinedServerRepos
from bot_data.abc.user_joined_voice_channel_repository_abc import UserJoinedVoiceChannelRepositoryABC
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.auto_role_filter import AutoRoleFilter
from bot_graphql.filter.client_filter import ClientFilter
from bot_graphql.filter.level_filter import LevelFilter
from bot_graphql.filter.user_filter import UserFilter
class ServerQuery(DataQueryABC):
class ServerQuery(DataQueryWithHistoryABC):
def __init__(
self,
bot: DiscordBotServiceABC,
db: DatabaseContextABC,
auto_roles: AutoRoleRepositoryABC,
clients: ClientRepositoryABC,
levels: LevelRepositoryABC,
@@ -25,7 +29,7 @@ class ServerQuery(DataQueryABC):
ujs: UserJoinedServerRepositoryABC,
ujvs: UserJoinedVoiceChannelRepositoryABC,
):
DataQueryABC.__init__(self, "Server")
DataQueryWithHistoryABC.__init__(self, "Server", "ServersHistory", ServerHistory, db)
self._bot = bot
self._auto_roles = auto_roles

View File

@@ -0,0 +1,33 @@
from bot_data.model.user import User
from bot_graphql.abc.history_query_abc import HistoryQueryABC
class UserHistoryQuery(HistoryQueryABC):
def __init__(self):
HistoryQueryABC.__init__(self, "User")
self.set_field("id", self.resolve_id)
self.set_field("discordId", self.resolve_discord_id)
self.set_field("xp", self.resolve_xp)
self.set_field("server", self.resolve_server)
self.set_field("leftServer", self.resolve_left_server)
@staticmethod
def resolve_id(user: User, *_):
return user.id
@staticmethod
def resolve_discord_id(user: User, *_):
return user.discord_id
@staticmethod
def resolve_xp(user: User, *_):
return user.xp
@staticmethod
def resolve_server(user: User, *_):
return user.server
@staticmethod
def resolve_left_server(user: User, *_):
return user.left_server

View File

@@ -0,0 +1,41 @@
from cpl_discord.service import DiscordBotServiceABC
from bot_data.model.user_joined_game_server import UserJoinedGameServer
from bot_graphql.abc.history_query_abc import HistoryQueryABC
class UserJoinedGameServerHistoryQuery(HistoryQueryABC):
def __init__(self, bot: DiscordBotServiceABC):
HistoryQueryABC.__init__(self, "UserJoinedGameServer")
self._bot = bot
self.set_field("id", self.resolve_id)
self.set_field("gameServer", self.resolve_game_server)
self.set_field("user", self.resolve_user)
self.set_field("joinedOn", self.resolve_joined_on)
self.set_field("leavedOn", self.resolve_leaved_on)
@staticmethod
def resolve_id(x: UserJoinedGameServer, *_):
return x.id
@staticmethod
def resolve_game_server(x: UserJoinedGameServer, *_):
return x.game_server.name
@staticmethod
def resolve_user(x: UserJoinedGameServer, *_):
return x.user
@staticmethod
def resolve_time(x: UserJoinedGameServer, *_):
return x.time
@staticmethod
def resolve_joined_on(x: UserJoinedGameServer, *_):
return x.joined_on
@staticmethod
def resolve_leaved_on(x: UserJoinedGameServer, *_):
return x.leaved_on

View File

@@ -1,12 +1,16 @@
from cpl_core.database.context import DatabaseContextABC
from cpl_discord.service import DiscordBotServiceABC
from bot_data.model.user_joined_game_server import UserJoinedGameServer
from bot_graphql.abc.data_query_abc import DataQueryABC
from bot_data.model.user_joined_game_server_history import UserJoinedGameServerHistory
from bot_graphql.abc.data_query_with_history_abc import DataQueryWithHistoryABC
class UserJoinedGameServerQuery(DataQueryABC):
def __init__(self, bot: DiscordBotServiceABC):
DataQueryABC.__init__(self, "UserJoinedGameServer")
class UserJoinedGameServerQuery(DataQueryWithHistoryABC):
def __init__(self, bot: DiscordBotServiceABC, db: DatabaseContextABC):
DataQueryWithHistoryABC.__init__(
self, "UserJoinedGameServer", "UserJoinedGameServersHistory", UserJoinedGameServerHistory, db
)
self._bot = bot

View File

@@ -0,0 +1,28 @@
from bot_data.model.user_joined_server import UserJoinedServer
from bot_graphql.abc.data_query_abc import DataQueryABC
class UserJoinedServerHistoryQuery(DataQueryABC):
def __init__(self):
DataQueryABC.__init__(self, "UserJoinedServer")
self.set_field("id", self.resolve_id)
self.set_field("user", self.resolve_user)
self.set_field("joinedOn", self.resolve_joined_on)
self.set_field("leavedOn", self.resolve_leaved_on)
@staticmethod
def resolve_id(x: UserJoinedServer, *_):
return x.id
@staticmethod
def resolve_user(x: UserJoinedServer, *_):
return x.user
@staticmethod
def resolve_joined_on(x: UserJoinedServer, *_):
return x.joined_on
@staticmethod
def resolve_leaved_on(x: UserJoinedServer, *_):
return x.leaved_on

View File

@@ -1,10 +1,15 @@
from cpl_core.database.context import DatabaseContextABC
from bot_data.model.user_joined_server import UserJoinedServer
from bot_graphql.abc.data_query_abc import DataQueryABC
from bot_data.model.user_joined_server_history import UserJoinedServerHistory
from bot_graphql.abc.data_query_with_history_abc import DataQueryWithHistoryABC
class UserJoinedServerQuery(DataQueryABC):
def __init__(self):
DataQueryABC.__init__(self, "UserJoinedServer")
class UserJoinedServerQuery(DataQueryWithHistoryABC):
def __init__(self, db: DatabaseContextABC):
DataQueryWithHistoryABC.__init__(
self, "UserJoinedServer", "UserJoinedServersHistory", UserJoinedServerHistory, db
)
self.set_field("id", self.resolve_id)
self.set_field("user", self.resolve_user)

View File

@@ -0,0 +1,47 @@
from cpl_discord.service import DiscordBotServiceABC
from bot_data.model.user_joined_voice_channel import UserJoinedVoiceChannel
from bot_graphql.abc.history_query_abc import HistoryQueryABC
class UserJoinedVoiceChannelHistoryQuery(HistoryQueryABC):
def __init__(self, bot: DiscordBotServiceABC):
HistoryQueryABC.__init__(self, "UserJoinedVoiceChannel")
self._bot = bot
self.set_field("id", self.resolve_id)
self.set_field("channelId", self.resolve_channel_id)
self.set_field("channelName", self.resolve_channel_name)
self.set_field("user", self.resolve_user)
self.set_field("time", self.resolve_time)
self.set_field("joinedOn", self.resolve_joined_on)
self.set_field("leavedOn", self.resolve_leaved_on)
@staticmethod
def resolve_id(x: UserJoinedVoiceChannel, *_):
return x.id
@staticmethod
def resolve_channel_id(x: UserJoinedVoiceChannel, *_):
return x.channel_id
@staticmethod
def resolve_channel_name(x: UserJoinedVoiceChannel, *_):
return x.channel_name
@staticmethod
def resolve_user(x: UserJoinedVoiceChannel, *_):
return x.user
@staticmethod
def resolve_time(x: UserJoinedVoiceChannel, *_):
return x.time
@staticmethod
def resolve_joined_on(x: UserJoinedVoiceChannel, *_):
return x.joined_on
@staticmethod
def resolve_leaved_on(x: UserJoinedVoiceChannel, *_):
return x.leaved_on

View File

@@ -1,12 +1,16 @@
from cpl_core.database.context import DatabaseContextABC
from cpl_discord.service import DiscordBotServiceABC
from bot_data.model.user_joined_voice_channel import UserJoinedVoiceChannel
from bot_graphql.abc.data_query_abc import DataQueryABC
from bot_data.model.user_joined_voice_channel_history import UserJoinedVoiceChannelHistory
from bot_graphql.abc.data_query_with_history_abc import DataQueryWithHistoryABC
class UserJoinedVoiceChannelQuery(DataQueryABC):
def __init__(self, bot: DiscordBotServiceABC):
DataQueryABC.__init__(self, "UserJoinedVoiceChannel")
class UserJoinedVoiceChannelQuery(DataQueryWithHistoryABC):
def __init__(self, bot: DiscordBotServiceABC, db: DatabaseContextABC):
DataQueryWithHistoryABC.__init__(
self, "UserJoinedVoiceChannel", "UserJoinedVoiceChannelsHistory", UserJoinedVoiceChannelHistory, db
)
self._bot = bot

View File

@@ -1,3 +1,4 @@
from cpl_core.database.context import DatabaseContextABC
from cpl_discord.service import DiscordBotServiceABC
from bot_core.abc.client_utils_abc import ClientUtilsABC
@@ -5,7 +6,8 @@ from bot_data.abc.user_joined_game_server_repository_abc import UserJoinedGameSe
from bot_data.abc.user_joined_server_repository_abc import UserJoinedServerRepositoryABC
from bot_data.abc.user_joined_voice_channel_repository_abc import UserJoinedVoiceChannelRepositoryABC
from bot_data.model.user import User
from bot_graphql.abc.data_query_abc import DataQueryABC
from bot_data.model.user_history import UserHistory
from bot_graphql.abc.data_query_with_history_abc import DataQueryWithHistoryABC
from bot_graphql.filter.user_joined_game_server_filter import UserJoinedGameServerFilter
from bot_graphql.filter.user_joined_server_filter import UserJoinedServerFilter
from bot_graphql.filter.user_joined_voice_channel_filter import UserJoinedVoiceChannelFilter
@@ -13,10 +15,11 @@ from modules.level.service.level_service import LevelService
from modules.permission.abc.permission_service_abc import PermissionServiceABC
class UserQuery(DataQueryABC):
class UserQuery(DataQueryWithHistoryABC):
def __init__(
self,
bot: DiscordBotServiceABC,
db: DatabaseContextABC,
levels: LevelService,
client_utils: ClientUtilsABC,
ujs: UserJoinedServerRepositoryABC,
@@ -24,7 +27,7 @@ class UserQuery(DataQueryABC):
user_joined_game_server: UserJoinedGameServerRepositoryABC,
permissions: PermissionServiceABC,
):
DataQueryABC.__init__(self, "User")
DataQueryWithHistoryABC.__init__(self, "User", "UsersHistory", UserHistory, db)
self._bot = bot
self._levels = levels