Renamed type_id to id for sorting #130

This commit is contained in:
2023-02-17 18:12:27 +01:00
parent 85452c9a74
commit fea259fa3b
67 changed files with 224 additions and 223 deletions

View File

@@ -75,9 +75,9 @@ class QueryABC(ObjectType):
element: AutoRole = element
for u in user.users:
u: User = u
guild = bot.get_guild(u.server.discord_server_id)
guild = bot.get_guild(u.server.discord_id)
member = guild.get_member(u.discord_id)
if permissions.is_member_moderator(member) and u.server.server_id == element.server.server_id:
if permissions.is_member_moderator(member) and u.server.id == element.server.id:
access = True
break
@@ -85,23 +85,23 @@ class QueryABC(ObjectType):
element: AutoRole = element.auto_role
for u in user.users:
u: User = u
guild = bot.get_guild(u.server.discord_server_id)
guild = bot.get_guild(u.server.discord_id)
member = guild.get_member(u.discord_id)
if permissions.is_member_moderator(member) and u.server.server_id == element.server.server_id:
if permissions.is_member_moderator(member) and u.server.id == element.server.id:
access = True
break
elif type(element) == Client:
for u in user.users:
u: User = u
if u.server.server_id == element.server.server_id:
if u.server.id == element.server.id:
access = True
break
elif type(element) == KnownUser:
for u in user.users:
u: User = u
guild = bot.get_guild(u.server.discord_server_id)
guild = bot.get_guild(u.server.discord_id)
member = guild.get_member(u.discord_id)
if permissions.is_member_moderator(member):
access = True
@@ -110,42 +110,42 @@ class QueryABC(ObjectType):
elif type(element) == Level:
for u in user.users:
u: User = u
if u.server.server_id == element.server.server_id:
if u.server.id == element.server.id:
access = True
break
elif type(element) == Server:
for u in user.users:
u: User = u
if u.server.server_id == element.server_id:
if u.server.id == element.id:
access = True
break
elif type(element) == User:
for u in user.users:
u: User = u
if u.user_id == element.user_id:
if u.id == element.id:
access = True
break
elif type(element) == UserJoinedServer:
for u in user.users:
u: User = u
if u.user_id == element.user.user_id:
if u.id == element.user.id:
access = True
break
elif type(element) == UserJoinedVoiceChannel:
for u in user.users:
u: User = u
if u.user_id == element.user.user_id:
if u.id == element.user.id:
access = True
break
elif type(element) == UserJoinedGameServer:
for u in user.users:
u: User = u
if u.user_id == element.user.user_id:
if u.id == element.user.id:
access = True
break
@@ -160,8 +160,8 @@ class QueryABC(ObjectType):
if auth_user == "system" or auth_user.auth_role == AuthRoleEnum.admin:
return
member = bot.get_guild(server.discord_server_id).get_member(
auth_user.users.where(lambda x: x.server.server_id == server.server_id).single().discord_id
member = bot.get_guild(server.discord_id).get_member(
auth_user.users.where(lambda x: x.server.id == server.id).single().discord_id
)
check_perm = lambda x: True

View File

@@ -42,7 +42,7 @@ class AutoRoleFilter(FilterABC):
def filter(self, query: List[AutoRole]) -> List[AutoRole]:
if self._id is not None:
query = query.where(lambda x: x.auto_role_id == self._id)
query = query.where(lambda x: x.id == self._id)
if self._channel_id is not None:
query = query.where(lambda x: x.discord_channel_id == self._channel_id)
@@ -57,7 +57,7 @@ class AutoRoleFilter(FilterABC):
query = query.where(lambda x: x.discord_message_id == self._message_id)
if self._server is not None:
servers = self._server.filter(query.select(lambda x: x.server)).select(lambda x: x.server_id)
query = query.where(lambda x: x.server.server_id in servers)
servers = self._server.filter(query.select(lambda x: x.server)).select(lambda x: x.id)
query = query.where(lambda x: x.server.id in servers)
return query

View File

@@ -39,7 +39,7 @@ class AutoRoleRuleFilter(FilterABC):
def filter(self, query: List[AutoRoleRule]) -> List[AutoRoleRule]:
if self._id is not None:
query = query.where(lambda x: x.auto_role_rule_id == self._id)
query = query.where(lambda x: x.id == self._id)
if self._emoji_name is not None:
query = query.where(lambda x: x.emoji_name == self._emoji_name)
@@ -50,14 +50,14 @@ class AutoRoleRuleFilter(FilterABC):
if self._role_name is not None and self._role_id is not None:
def get_role_name(x: AutoRoleRule):
guild = self._bot.get_guild(x.auto_role.server.discord_server_id)
guild = self._bot.get_guild(x.auto_role.server.discord_id)
name = guild.get_role(x.role_id).name
return name == self._role_name or self._role_name in name
query = query.where(get_role_name)
if self._auto_role is not None:
auto_roles = self._auto_role.filter(query.select(lambda x: x.auto_role)).select(lambda x: x.auto_role_id)
query = query.where(lambda x: x.auto_role.auto_role_id in auto_roles)
auto_roles = self._auto_role.filter(query.select(lambda x: x.auto_role)).select(lambda x: x.id)
query = query.where(lambda x: x.auto_role.id in auto_roles)
return query

View File

@@ -32,16 +32,16 @@ class ClientFilter(FilterABC):
def filter(self, query: List[Client]) -> List[Client]:
if self._id is not None:
query = query.where(lambda x: x.client_id == self._id)
query = query.where(lambda x: x.id == self._id)
if self._discord_id is not None:
query = query.where(lambda x: x.client_id == self._discord_id)
query = query.where(lambda x: x.id == self._discord_id)
if self._name is not None:
query = query.where(lambda x: self._name.lower() == x.name.lower() or self._name.lower() in x.name.lower())
if self._server is not None:
servers = self._server.filter(query.select(lambda x: x.server)).select(lambda x: x.server_id)
query = query.where(lambda x: x.server.server_id in servers)
servers = self._server.filter(query.select(lambda x: x.server)).select(lambda x: x.id)
query = query.where(lambda x: x.server.id in servers)
return query

View File

@@ -36,7 +36,7 @@ class LevelFilter(FilterABC):
query = query.where(lambda x: self._name.lower() == x.name.lower() or self._name.lower() in x.name.lower())
if self._server is not None:
servers = self._server.filter(query.select(lambda x: x.server)).select(lambda x: x.server_id)
query = query.where(lambda x: x.server.server_id in servers)
servers = self._server.filter(query.select(lambda x: x.server)).select(lambda x: x.id)
query = query.where(lambda x: x.server.id in servers)
return query

View File

@@ -28,10 +28,10 @@ class ServerFilter(FilterABC):
@ServiceProviderABC.inject
def filter(self, query: List[Server], bot: DiscordBotServiceABC) -> List[Server]:
if self._id is not None:
query = query.where(lambda x: x.server_id == self._id)
query = query.where(lambda x: x.id == self._id)
if self._discord_id is not None:
query = query.where(lambda x: x.discord_server_id == self._discord_id)
query = query.where(lambda x: x.discord_id == self._discord_id)
if self._name is not None:

View File

@@ -16,5 +16,18 @@ class Sort(FilterABC):
if "sortColumn" in values:
self._sort_column = values["sortColumn"]
def _by_column(self, x):
atr = getattr(x, self._sort_column, None)
return atr
def filter(self, query: List, *args) -> List:
if self._sort_column is None:
return query
match self._sort_direction.lower() if self._sort_direction is not None else "ASC":
case "asc":
query = query.order_by(self._by_column)
case "desc":
query = query.order_by_descending(self._by_column)
return query

View File

@@ -73,7 +73,7 @@ class UserFilter(FilterABC):
def filter(self, query: List[User]) -> List[User]:
if self._id is not None:
query = query.where(lambda x: x.user_id == self._id or str(self._id) in str(x.user_id))
query = query.where(lambda x: x.id == self._id or str(self._id) in str(x.id))
if self._discord_id is not None:
query = query.where(
@@ -83,7 +83,7 @@ class UserFilter(FilterABC):
if self._name is not None:
def _get_member(user: User):
guild = self._bot.get_guild(user.server.discord_server_id)
guild = self._bot.get_guild(user.server.discord_id)
member = guild.get_member(user.discord_id)
return member is not None and (member.name == self._name or self._name in member.name)
@@ -103,13 +103,13 @@ class UserFilter(FilterABC):
query = query.where(lambda x: self._levels.get_level(x).id in levels)
if self._server is not None:
servers = self._server.filter(query.select(lambda x: x.server)).select(lambda x: x.server_id)
query = query.where(lambda x: x.server.server_id in servers)
servers = self._server.filter(query.select(lambda x: x.server)).select(lambda x: x.id)
query = query.where(lambda x: x.server.id in servers)
if self._left_server is not None:
def _has_user_left_server(user: User):
active_join = self._user_joined_servers.find_active_user_joined_server_by_user_id(user.user_id)
active_join = self._user_joined_servers.find_active_user_joined_server_by_user_id(user.id)
return (active_join is None) == self._left_server
query = query.where(_has_user_left_server)

View File

@@ -42,7 +42,7 @@ class UserJoinedGameServerFilter(FilterABC):
query = query.where(lambda x: x.game_server == self._game_server)
if self._user is not None:
users = self._user.filter(query.select(lambda x: x.user)).select(lambda x: x.user_id)
query = query.where(lambda x: x.user.user_id in users)
users = self._user.filter(query.select(lambda x: x.user)).select(lambda x: x.id)
query = query.where(lambda x: x.user.id in users)
return query

View File

@@ -43,8 +43,8 @@ class UserJoinedServerFilter(FilterABC):
query = query.where(lambda x: x.id == self._id)
if self._user is not None:
users = self._user.filter(query.select(lambda x: x.user)).select(lambda x: x.user_id)
query = query.where(lambda x: x.user.user_id in users)
users = self._user.filter(query.select(lambda x: x.user)).select(lambda x: x.id)
query = query.where(lambda x: x.user.id in users)
if self._joined_on is not None:
query = query.where(lambda x: x.joined_on == self._joined_on or self._joined_on in x.joined_on)

View File

@@ -62,8 +62,8 @@ class UserJoinedVoiceChannelFilter(FilterABC):
query = query.where(get_channel_name)
if self._user is not None:
users = self._user.filter(query.select(lambda x: x.user)).select(lambda x: x.user_id)
query = query.where(lambda x: x.user.user_id in users)
users = self._user.filter(query.select(lambda x: x.user)).select(lambda x: x.id)
query = query.where(lambda x: x.user.id in users)
if self._joined_on is not None:
query = query.where(lambda x: x.joined_on == self._joined_on or self._joined_on in x.joined_on)

View File

@@ -9,6 +9,11 @@ input Page {
}
input Sort {
sortDirection: String
sortDirection: SortDirection
sortColumn: String
}
enum SortDirection {
ASC
DESC
}

View File

@@ -33,12 +33,12 @@ class AutoRoleMutation(QueryABC):
def get_new(x: AutoRole):
return (
x.server.server_id == input["serverId"]
x.server.id == input["serverId"]
and x.discord_channel_id == input["channelId"]
and x.discord_message_id == input["messageId"]
)
return self._auto_roles.get_auto_roles_by_server_id(auto_role.server.server_id).where(get_new).last()
return self._auto_roles.get_auto_roles_by_server_id(auto_role.server.id).where(get_new).last()
def resolve_update_auto_role(self, *_, input: dict):
auto_role = self._auto_roles.get_auto_role_by_id(input["id"])

View File

@@ -35,16 +35,12 @@ class AutoRoleRuleMutation(QueryABC):
def get_new(x: AutoRoleRule):
return (
x.auto_role.auto_role_id == input["autoRoleId"]
x.auto_role.id == input["autoRoleId"]
and x.emoji_name == input["emojiName"]
and x.role_id == input["roleId"]
)
return (
self._auto_roles.get_auto_role_rules_by_auto_role_id(auto_role_rule.auto_role.auto_role_id)
.where(get_new)
.last()
)
return self._auto_roles.get_auto_role_rules_by_auto_role_id(auto_role_rule.auto_role.id).where(get_new).last()
def resolve_update_auto_role_rule(self, *_, input: dict):
auto_role_rule = self._auto_roles.get_auto_role_rule_by_id(input["id"])

View File

@@ -46,7 +46,7 @@ class LevelMutation(QueryABC):
and l.permissions == level.permissions
)
return self._levels.get_levels_by_server_id(level.server.server_id).where(get_new_level).last()
return self._levels.get_levels_by_server_id(level.server.id).where(get_new_level).last()
def resolve_update_level(self, *_, input: dict):
level = self._levels.get_level_by_id(input["id"])

View File

@@ -45,11 +45,11 @@ class UserJoinedGameServerMutation(QueryABC):
user = self._users.get_user_by_id(input["userId"])
self._can_user_mutate_data(user.server, UserRoleEnum.admin)
active = self._user_joined_game_servers.find_active_user_joined_game_server_by_user_id(user.user_id)
active = self._user_joined_game_servers.find_active_user_joined_game_server_by_user_id(user.id)
if active is not None:
self._logger.debug(
__name__,
f"Skip UserJoinedGameServer for user {user.user_id}. User already plays on {active.game_server}.",
f"Skip UserJoinedGameServer for user {user.id}. User already plays on {active.game_server}.",
)
return
@@ -57,18 +57,18 @@ class UserJoinedGameServerMutation(QueryABC):
self._user_joined_game_servers.add_user_joined_game_server(new)
self._db.save_changes()
return self._user_joined_game_servers.get_active_user_joined_game_server_by_user_id(user.user_id)
return self._user_joined_game_servers.get_active_user_joined_game_server_by_user_id(user.id)
def resolve_user_leaved(self, *_, input: dict):
user = self._users.get_user_by_id(input["userId"])
self._can_user_mutate_data(user.server, UserRoleEnum.admin)
active = self._user_joined_game_servers.find_active_user_joined_game_server_by_user_id(user.user_id)
active = self._user_joined_game_servers.find_active_user_joined_game_server_by_user_id(user.id)
if active is None:
return None
active.leaved_on = datetime.now()
settings: BaseServerSettings = self._base_helper.get_config(user.server.discord_server_id)
settings: BaseServerSettings = self._base_helper.get_config(user.server.discord_id)
ontime = round((active.leaved_on - active.joined_on).total_seconds() / 3600, 2)
old_xp = user.xp

View File

@@ -28,13 +28,13 @@ class AutoRoleQuery(DataQueryABC):
self.set_field("server", self.resolve_server)
self.add_collection(
"autoRoleRule",
lambda x, *_: self._auto_role_rules.get_auto_role_rules_by_auto_role_id(x.auto_role_id),
lambda x, *_: self._auto_role_rules.get_auto_role_rules_by_auto_role_id(x.id),
AutoRoleFilter,
)
@staticmethod
def resolve_id(x: AutoRole, *_):
return x.auto_role_id
return x.id
@staticmethod
def resolve_channel_id(x: AutoRole, *_):
@@ -50,6 +50,6 @@ class AutoRoleQuery(DataQueryABC):
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.server_id))
return filter.filter(self._servers.get_server_by_id(x.server.id))
return self._servers.get_server_by_id(x.server.server_id)
return self._servers.get_server_by_id(x.server.id)

View File

@@ -24,7 +24,7 @@ class AutoRoleRuleQuery(DataQueryABC):
@staticmethod
def resolve_id(x: AutoRoleRule, *_):
return x.auto_role_rule_id
return x.id
@staticmethod
def resolve_emoji_name(x: AutoRoleRule, *_):
@@ -35,8 +35,8 @@ class AutoRoleRuleQuery(DataQueryABC):
return x.role_id
def resolve_role_name(self, x: AutoRoleRule, *_):
guild = self._bot.get_guild(x.auto_role.server.discord_server_id)
guild = self._bot.get_guild(x.auto_role.server.discord_id)
return guild.get_role(x.role_id).name
def resolve_auto_role(self, x: AutoRoleRule, *_):
return self._auto_roles.get_auto_role_by_id(x.auto_role.auto_role_id)
return self._auto_roles.get_auto_role_by_id(x.auto_role.id)

View File

@@ -25,7 +25,7 @@ class ClientQuery(DataQueryABC):
@staticmethod
def resolve_id(client: Client, *_):
return client.client_id
return client.id
@staticmethod
def resolve_discord_id(client: Client, *_):

View File

@@ -11,7 +11,7 @@ class KnownUserQuery(DataQueryABC):
@staticmethod
def resolve_id(x: KnownUser, *_):
return x.known_user_id
return x.id
@staticmethod
def resolve_discord_id(x: KnownUser, *_):

View File

@@ -42,29 +42,27 @@ class ServerQuery(DataQueryABC):
self.add_collection(
"autoRole",
lambda server, *_: self._auto_roles.get_auto_roles_by_server_id(server.server_id),
lambda server, *_: self._auto_roles.get_auto_roles_by_server_id(server.id),
AutoRoleFilter,
)
self.add_collection(
"client", lambda server, *_: self._clients.get_clients_by_server_id(server.server_id), ClientFilter
"client", lambda server, *_: self._clients.get_clients_by_server_id(server.id), ClientFilter
)
self.add_collection(
"level", lambda server, *_: self._levels.get_levels_by_server_id(server.server_id), LevelFilter
)
self.add_collection("user", lambda server, *_: self._users.get_users_by_server_id(server.server_id), UserFilter)
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)
@staticmethod
def resolve_id(server: Server, *_):
return server.server_id
return server.id
@staticmethod
def resolve_discord_id(server: Server, *_):
return server.discord_server_id
return server.discord_id
def resolve_name(self, server: Server, *_):
guild = self._bot.get_guild(server.discord_server_id)
guild = self._bot.get_guild(server.discord_id)
return None if guild is None else guild.name
def resolve_icon_url(self, server: Server, *_):
guild = self._bot.get_guild(server.discord_server_id)
guild = self._bot.get_guild(server.discord_id)
return None if guild is None else guild.icon.url

View File

@@ -13,7 +13,7 @@ class UserJoinedServerQuery(DataQueryABC):
@staticmethod
def resolve_id(x: UserJoinedServer, *_):
return x.join_id
return x.id
@staticmethod
def resolve_user(x: UserJoinedServer, *_):

View File

@@ -19,7 +19,7 @@ class UserJoinedVoiceChannelQuery(DataQueryABC):
@staticmethod
def resolve_id(x: UserJoinedVoiceChannel, *_):
return x.join_id
return x.id
@staticmethod
def resolve_channel_id(x: UserJoinedVoiceChannel, *_):

View File

@@ -43,17 +43,17 @@ class UserQuery(DataQueryABC):
self.set_field("level", self.resolve_level)
self.add_collection(
"joinedServer",
lambda user, *_: self._ujs.get_user_joined_servers_by_user_id(user.user_id),
lambda user, *_: self._ujs.get_user_joined_servers_by_user_id(user.id),
UserJoinedServerFilter,
)
self.add_collection(
"joinedVoiceChannel",
lambda user, *_: self._ujvs.get_user_joined_voice_channels_by_user_id(user.user_id),
lambda user, *_: self._ujvs.get_user_joined_voice_channels_by_user_id(user.id),
UserJoinedVoiceChannelFilter,
)
self.add_collection(
"userJoinedGameServer",
lambda user, *_: self._user_joined_game_server.get_user_joined_game_servers_by_user_id(user.user_id),
lambda user, *_: self._user_joined_game_server.get_user_joined_game_servers_by_user_id(user.id),
UserJoinedGameServerFilter,
)
self.set_field("server", self.resolve_server)
@@ -61,14 +61,14 @@ class UserQuery(DataQueryABC):
@staticmethod
def resolve_id(user: User, *_):
return user.user_id
return user.id
@staticmethod
def resolve_discord_id(user: User, *_):
return user.discord_id
def resolve_name(self, user: User, *_):
guild = self._bot.get_guild(user.server.discord_server_id)
guild = self._bot.get_guild(user.server.discord_id)
user = guild.get_member(user.discord_id)
return None if user is None else user.name
@@ -91,4 +91,4 @@ class UserQuery(DataQueryABC):
return user.server
def resolve_left_server(self, user: User, *_):
return self._ujs.find_active_user_joined_server_by_user_id(user.user_id) is None
return self._ujs.find_active_user_joined_server_by_user_id(user.id) is None