Formatted stuff #405
This commit is contained in:
@@ -24,11 +24,7 @@ class FilterABC(ABC):
|
||||
sig = signature(f)
|
||||
for param in sig.parameters.items():
|
||||
parameter = param[1]
|
||||
if (
|
||||
parameter.name == "self"
|
||||
or parameter.name == "cls"
|
||||
or parameter.annotation == Parameter.empty
|
||||
):
|
||||
if parameter.name == "self" or parameter.name == "cls" or parameter.annotation == Parameter.empty:
|
||||
continue
|
||||
|
||||
if issubclass(parameter.annotation, FilterABC):
|
||||
@@ -38,9 +34,7 @@ class FilterABC(ABC):
|
||||
|
||||
@staticmethod
|
||||
@ServiceProviderABC.inject
|
||||
def get_collection_filter(
|
||||
filter_type: type, values: dict, services: ServiceProviderABC
|
||||
):
|
||||
def get_collection_filter(filter_type: type, values: dict, services: ServiceProviderABC):
|
||||
filter: FilterABC = services.get_service(filter_type)
|
||||
filter.from_dict(values)
|
||||
return filter
|
||||
|
@@ -38,14 +38,10 @@ class QueryABC(ObjectType):
|
||||
def __init__(self, name: str):
|
||||
ObjectType.__init__(self, name)
|
||||
|
||||
def add_collection(
|
||||
self, name: str, get_collection: Callable, filter_type: type = None
|
||||
):
|
||||
def add_collection(self, name: str, get_collection: Callable, filter_type: type = None):
|
||||
def wrapper(*args, **kwargs):
|
||||
if filter_type is not None and "filter" in kwargs:
|
||||
kwargs["filter"] = FilterABC.get_collection_filter(
|
||||
filter_type, kwargs["filter"]
|
||||
)
|
||||
kwargs["filter"] = FilterABC.get_collection_filter(filter_type, kwargs["filter"])
|
||||
else:
|
||||
kwargs["filter"] = None
|
||||
|
||||
@@ -98,10 +94,7 @@ class QueryABC(ObjectType):
|
||||
u: User = u
|
||||
guild = bot.get_guild(u.server.discord_id)
|
||||
member = guild.get_member(u.discord_id)
|
||||
if (
|
||||
permissions.is_member_moderator(member)
|
||||
and u.server.id == element.server.id
|
||||
):
|
||||
if permissions.is_member_moderator(member) and u.server.id == element.server.id:
|
||||
access = True
|
||||
break
|
||||
|
||||
@@ -111,10 +104,7 @@ class QueryABC(ObjectType):
|
||||
u: User = u
|
||||
guild = bot.get_guild(u.server.discord_id)
|
||||
member = guild.get_member(u.discord_id)
|
||||
if (
|
||||
permissions.is_member_moderator(member)
|
||||
and u.server.id == element.server.id
|
||||
):
|
||||
if permissions.is_member_moderator(member) and u.server.id == element.server.id:
|
||||
access = True
|
||||
break
|
||||
|
||||
@@ -124,10 +114,7 @@ class QueryABC(ObjectType):
|
||||
u: User = u
|
||||
guild = bot.get_guild(u.server.discord_id)
|
||||
member = guild.get_member(u.discord_id)
|
||||
if (
|
||||
permissions.is_member_moderator(member)
|
||||
and u.server.id == element.auto_role.server.id
|
||||
):
|
||||
if permissions.is_member_moderator(member) and u.server.id == element.auto_role.server.id:
|
||||
access = True
|
||||
break
|
||||
|
||||
@@ -212,18 +199,11 @@ class QueryABC(ObjectType):
|
||||
u: User = u
|
||||
guild = bot.get_guild(u.server.discord_id)
|
||||
member = guild.get_member(u.discord_id)
|
||||
if (
|
||||
permissions.is_member_moderator(member)
|
||||
and u.server.id == element.server.id
|
||||
):
|
||||
if permissions.is_member_moderator(member) and u.server.id == element.server.id:
|
||||
access = True
|
||||
break
|
||||
|
||||
elif (
|
||||
type(element) == dict
|
||||
and "key" in element
|
||||
and element["key"] in [e.value for e in FeatureFlagsEnum]
|
||||
):
|
||||
elif type(element) == dict and "key" in element and element["key"] in [e.value for e in FeatureFlagsEnum]:
|
||||
for u in user.users:
|
||||
u: User = u
|
||||
guild = bot.get_guild(u.server.discord_id)
|
||||
@@ -235,9 +215,7 @@ class QueryABC(ObjectType):
|
||||
return access
|
||||
|
||||
@ServiceProviderABC.inject
|
||||
def _can_user_mutate_data(
|
||||
self, server: Server, permission: UserRoleEnum, services: ServiceProviderABC
|
||||
):
|
||||
def _can_user_mutate_data(self, server: Server, permission: UserRoleEnum, services: ServiceProviderABC):
|
||||
permissions: PermissionService = services.get_service(PermissionService)
|
||||
bot: DiscordBotServiceABC = services.get_service(DiscordBotServiceABC)
|
||||
|
||||
@@ -246,9 +224,7 @@ class QueryABC(ObjectType):
|
||||
return
|
||||
|
||||
member = bot.get_guild(server.discord_id).get_member(
|
||||
auth_user.users.where(lambda x: x.server.id == server.id)
|
||||
.single()
|
||||
.discord_id
|
||||
auth_user.users.where(lambda x: x.server.id == server.id).single().discord_id
|
||||
)
|
||||
|
||||
check_perm = lambda x: True
|
||||
@@ -261,9 +237,7 @@ class QueryABC(ObjectType):
|
||||
check_perm = lambda x: permissions.is_member_technician(x)
|
||||
|
||||
if not check_perm(member):
|
||||
ex = ServiceException(
|
||||
ServiceErrorCode.Forbidden, f"User not allowed to mutate data"
|
||||
)
|
||||
ex = ServiceException(ServiceErrorCode.Forbidden, f"User not allowed to mutate data")
|
||||
raise ex
|
||||
|
||||
# @FilterABC.resolve_filter_annotation
|
||||
|
@@ -55,16 +55,10 @@ class AchievementFilter(FilterABC):
|
||||
query = query.where(lambda x: x.name == self._name or self._name in x.name)
|
||||
|
||||
if self._description is not None:
|
||||
query = query.where(
|
||||
lambda x: x.description == self._description
|
||||
or self._description in x.description
|
||||
)
|
||||
query = query.where(lambda x: x.description == self._description or self._description in x.description)
|
||||
|
||||
if self._attribute is not None:
|
||||
query = query.where(
|
||||
lambda x: x.attribute == self._attribute
|
||||
or self._attribute in x.attribute
|
||||
)
|
||||
query = query.where(lambda x: x.attribute == self._attribute or self._attribute in x.attribute)
|
||||
|
||||
if self._operator is not None:
|
||||
query = query.where(lambda x: x.operator == self._operator)
|
||||
@@ -73,9 +67,7 @@ class AchievementFilter(FilterABC):
|
||||
query = query.where(lambda x: x.value == self._value)
|
||||
|
||||
if self._server is not None:
|
||||
servers = self._server.filter(query.select(lambda x: x.server)).select(
|
||||
lambda x: x.id
|
||||
)
|
||||
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
|
||||
|
@@ -46,26 +46,21 @@ class AutoRoleFilter(FilterABC):
|
||||
|
||||
if self._channel_id is not None:
|
||||
query = query.where(
|
||||
lambda x: x.discord_channel_id == self._channel_id
|
||||
or str(self._channel_id) in str(x.discord_channel_id)
|
||||
lambda x: x.discord_channel_id == self._channel_id or str(self._channel_id) in str(x.discord_channel_id)
|
||||
)
|
||||
|
||||
if self._channel_name is not None:
|
||||
query = query.where(
|
||||
lambda x: x.discord_channel_name == self._channel_name
|
||||
or self._channel_name in x.discord_channel_name
|
||||
lambda x: x.discord_channel_name == self._channel_name or self._channel_name in x.discord_channel_name
|
||||
)
|
||||
|
||||
if self._message_id is not None:
|
||||
query = query.where(
|
||||
lambda x: x.discord_message_id == self._message_id
|
||||
or str(self._message_id) in str(x.discord_message_id)
|
||||
lambda x: x.discord_message_id == self._message_id or str(self._message_id) in str(x.discord_message_id)
|
||||
)
|
||||
|
||||
if self._server is not None:
|
||||
servers = self._server.filter(query.select(lambda x: x.server)).select(
|
||||
lambda x: x.id
|
||||
)
|
||||
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
|
||||
|
@@ -57,9 +57,7 @@ class AutoRoleRuleFilter(FilterABC):
|
||||
query = query.where(get_role_name)
|
||||
|
||||
if self._auto_role is not None:
|
||||
auto_roles = self._auto_role.filter(
|
||||
query.select(lambda x: x.game_server)
|
||||
).select(lambda x: x.id)
|
||||
auto_roles = self._auto_role.filter(query.select(lambda x: x.game_server)).select(lambda x: x.id)
|
||||
query = query.where(lambda x: x.game_server.id in auto_roles)
|
||||
|
||||
return query
|
||||
|
@@ -38,15 +38,10 @@ class ClientFilter(FilterABC):
|
||||
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()
|
||||
)
|
||||
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.id
|
||||
)
|
||||
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
|
||||
|
@@ -33,15 +33,10 @@ class LevelFilter(FilterABC):
|
||||
query = query.where(lambda x: x.id == self._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()
|
||||
)
|
||||
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.id
|
||||
)
|
||||
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
|
||||
|
@@ -32,8 +32,7 @@ class ServerFilter(FilterABC):
|
||||
|
||||
if self._discord_id is not None:
|
||||
query = query.where(
|
||||
lambda x: x.discord_id == self._discord_id
|
||||
or str(self._discord_id) in str(x.discord_id)
|
||||
lambda x: x.discord_id == self._discord_id or str(self._discord_id) in str(x.discord_id)
|
||||
)
|
||||
|
||||
if self._name is not None:
|
||||
@@ -41,8 +40,7 @@ class ServerFilter(FilterABC):
|
||||
def where_guild(x: Guild):
|
||||
guild = bot.get_guild(x.discord_id)
|
||||
return guild is not None and (
|
||||
self._name.lower() == guild.name.lower()
|
||||
or self._name.lower() in guild.name.lower()
|
||||
self._name.lower() == guild.name.lower() or self._name.lower() in guild.name.lower()
|
||||
)
|
||||
|
||||
query = query.where(where_guild)
|
||||
|
@@ -46,10 +46,7 @@ class ShortRoleNameFilter(FilterABC):
|
||||
query = query.where(lambda x: x.id == self._id)
|
||||
|
||||
if self._short_name is not None:
|
||||
query = query.where(
|
||||
lambda x: x.short_name == self._short_name
|
||||
or self._short_name in x.short_name
|
||||
)
|
||||
query = query.where(lambda x: x.short_name == self._short_name or self._short_name in x.short_name)
|
||||
|
||||
if self._role_id is not None:
|
||||
query = query.where(lambda x: x.role_id == self._role_id)
|
||||
@@ -67,9 +64,7 @@ class ShortRoleNameFilter(FilterABC):
|
||||
query = query.where(lambda x: x.position.value == self._position.value)
|
||||
|
||||
if self._server is not None:
|
||||
servers = self._server.filter(query.select(lambda x: x.server)).select(
|
||||
lambda x: x.id
|
||||
)
|
||||
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
|
||||
|
@@ -73,8 +73,7 @@ class UserFilter(FilterABC):
|
||||
|
||||
if self._discord_id is not None:
|
||||
query = query.where(
|
||||
lambda x: x.discord_id == self._discord_id
|
||||
or str(self._discord_id) in str(x.discord_id)
|
||||
lambda x: x.discord_id == self._discord_id or str(self._discord_id) in str(x.discord_id)
|
||||
)
|
||||
|
||||
if self._name is not None:
|
||||
@@ -82,9 +81,7 @@ class UserFilter(FilterABC):
|
||||
def _get_member(user: User):
|
||||
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
|
||||
)
|
||||
return member is not None and (member.name == self._name or self._name in member.name)
|
||||
|
||||
query = query.where(_get_member)
|
||||
|
||||
@@ -92,30 +89,20 @@ class UserFilter(FilterABC):
|
||||
query = query.where(lambda x: x.xp == self._xp)
|
||||
|
||||
if self._ontime is not None:
|
||||
query = query.where(
|
||||
lambda x: self._client_utils.get_ontime_for_user(x) == self._ontime
|
||||
)
|
||||
query = query.where(lambda x: self._client_utils.get_ontime_for_user(x) == self._ontime)
|
||||
|
||||
if self._level is not None:
|
||||
levels = self._level.filter(
|
||||
query.select(lambda x: self._levels.get_level(x))
|
||||
).select(lambda x: x.id)
|
||||
levels = self._level.filter(query.select(lambda x: self._levels.get_level(x))).select(lambda x: x.id)
|
||||
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.id
|
||||
)
|
||||
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.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)
|
||||
|
@@ -42,9 +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.id
|
||||
)
|
||||
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
|
||||
|
@@ -43,21 +43,13 @@ 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.id
|
||||
)
|
||||
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
|
||||
)
|
||||
query = query.where(lambda x: x.joined_on == self._joined_on or self._joined_on in x.joined_on)
|
||||
|
||||
if self._leaved_on is not None:
|
||||
query = query.where(
|
||||
lambda x: x.leaved_on == self._leaved_on
|
||||
or self._leaved_on in x.leaved_on
|
||||
)
|
||||
query = query.where(lambda x: x.leaved_on == self._leaved_on or self._leaved_on in x.leaved_on)
|
||||
|
||||
return query
|
||||
|
@@ -46,9 +46,7 @@ class UserJoinedVoiceChannelFilter(FilterABC):
|
||||
if "leavedOn" in values:
|
||||
self._leaved_on = values["leavedOn"]
|
||||
|
||||
def filter(
|
||||
self, query: List[UserJoinedVoiceChannel]
|
||||
) -> List[UserJoinedVoiceChannel]:
|
||||
def filter(self, query: List[UserJoinedVoiceChannel]) -> List[UserJoinedVoiceChannel]:
|
||||
if self._id is not None:
|
||||
query = query.where(lambda x: x.id == self._id)
|
||||
|
||||
@@ -64,21 +62,13 @@ 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.id
|
||||
)
|
||||
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
|
||||
)
|
||||
query = query.where(lambda x: x.joined_on == self._joined_on or self._joined_on in x.joined_on)
|
||||
|
||||
if self._leaved_on is not None:
|
||||
query = query.where(
|
||||
lambda x: x.leaved_on == self._leaved_on
|
||||
or self._leaved_on in x.leaved_on
|
||||
)
|
||||
query = query.where(lambda x: x.leaved_on == self._leaved_on or self._leaved_on in x.leaved_on)
|
||||
|
||||
return query
|
||||
|
@@ -43,21 +43,14 @@ class UserWarningFilter(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.id
|
||||
)
|
||||
users = self._user.filter(query.select(lambda x: x.user)).select(lambda x: x.id)
|
||||
query = query.where(lambda x: x.id in users)
|
||||
|
||||
if self._description is not None:
|
||||
query = query.where(
|
||||
lambda x: x.description == self._description
|
||||
or self._description in x.description
|
||||
)
|
||||
query = query.where(lambda x: x.description == self._description or self._description in x.description)
|
||||
|
||||
if self._author is not None:
|
||||
users = self._author.filter(query.select(lambda x: x.author)).select(
|
||||
lambda x: x.id
|
||||
)
|
||||
users = self._author.filter(query.select(lambda x: x.author)).select(lambda x: x.id)
|
||||
query = query.where(lambda x: x.id in users)
|
||||
|
||||
return query
|
||||
|
@@ -95,14 +95,10 @@ class GraphQLModule(ModuleABC):
|
||||
def __init__(self, dc: DiscordCollectionABC):
|
||||
ModuleABC.__init__(self, dc, FeatureFlagsEnum.data_module)
|
||||
|
||||
def configure_configuration(
|
||||
self, config: ConfigurationABC, env: ApplicationEnvironmentABC
|
||||
):
|
||||
def configure_configuration(self, config: ConfigurationABC, env: ApplicationEnvironmentABC):
|
||||
pass
|
||||
|
||||
def configure_services(
|
||||
self, services: ServiceCollectionABC, env: ApplicationEnvironmentABC
|
||||
):
|
||||
def configure_services(self, services: ServiceCollectionABC, env: ApplicationEnvironmentABC):
|
||||
services.add_singleton(Schema)
|
||||
services.add_singleton(GraphQLService)
|
||||
services.add_singleton(Query)
|
||||
|
@@ -55,26 +55,16 @@ class AchievementMutation(QueryABC):
|
||||
and a.server.id == server.id
|
||||
)
|
||||
|
||||
return (
|
||||
self._achievements.get_achievements_by_server_id(achievement.server.id)
|
||||
.where(get_new_achievement)
|
||||
.last()
|
||||
)
|
||||
return self._achievements.get_achievements_by_server_id(achievement.server.id).where(get_new_achievement).last()
|
||||
|
||||
def resolve_update_achievement(self, *_, input: dict):
|
||||
achievement = self._achievements.get_achievement_by_id(input["id"])
|
||||
self._can_user_mutate_data(achievement.server, UserRoleEnum.moderator)
|
||||
|
||||
achievement.name = input["name"] if "name" in input else achievement.name
|
||||
achievement.description = (
|
||||
input["description"] if "description" in input else achievement.description
|
||||
)
|
||||
achievement.attribute = (
|
||||
input["attribute"] if "attribute" in input else achievement.attribute
|
||||
)
|
||||
achievement.operator = (
|
||||
input["operator"] if "operator" in input else achievement.operator
|
||||
)
|
||||
achievement.description = input["description"] if "description" in input else achievement.description
|
||||
achievement.attribute = input["attribute"] if "attribute" in input else achievement.attribute
|
||||
achievement.operator = input["operator"] if "operator" in input else achievement.operator
|
||||
achievement.value = input["value"] if "value" in input else achievement.value
|
||||
|
||||
self._achievements.update_achievement(achievement)
|
||||
|
@@ -42,22 +42,14 @@ class AutoRoleMutation(QueryABC):
|
||||
and x.discord_message_id == int(input["messageId"])
|
||||
)
|
||||
|
||||
return (
|
||||
self._auto_roles.get_auto_roles_by_server_id(auto_role.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"])
|
||||
self._can_user_mutate_data(auto_role.server, UserRoleEnum.moderator)
|
||||
|
||||
auto_role.discord_channel_id = (
|
||||
input["channelId"] if "channelId" in input else auto_role.discord_channel_id
|
||||
)
|
||||
auto_role.discord_message_id = (
|
||||
input["messageId"] if "messageId" in input else auto_role.discord_message_id
|
||||
)
|
||||
auto_role.discord_channel_id = input["channelId"] if "channelId" in input else auto_role.discord_channel_id
|
||||
auto_role.discord_message_id = input["messageId"] if "messageId" in input else auto_role.discord_message_id
|
||||
|
||||
self._auto_roles.update_auto_role(auto_role)
|
||||
self._db.save_changes()
|
||||
|
@@ -36,9 +36,7 @@ class AutoRoleRuleMutation(QueryABC):
|
||||
input["emojiName"],
|
||||
input["roleId"],
|
||||
)
|
||||
self._can_user_mutate_data(
|
||||
auto_role_rule.auto_role.server, UserRoleEnum.moderator
|
||||
)
|
||||
self._can_user_mutate_data(auto_role_rule.auto_role.server, UserRoleEnum.moderator)
|
||||
|
||||
self._auto_roles.add_auto_role_rule(auto_role_rule)
|
||||
self._db.save_changes()
|
||||
@@ -58,26 +56,14 @@ class AutoRoleRuleMutation(QueryABC):
|
||||
self._bot.get_guild(auto_role_rule.auto_role.server.discord_id),
|
||||
)
|
||||
)
|
||||
return (
|
||||
self._auto_roles.get_auto_role_rules_by_auto_role_id(
|
||||
auto_role_rule.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"])
|
||||
self._can_user_mutate_data(
|
||||
auto_role_rule.auto_role.server, UserRoleEnum.moderator
|
||||
)
|
||||
self._can_user_mutate_data(auto_role_rule.auto_role.server, UserRoleEnum.moderator)
|
||||
|
||||
auto_role_rule.emoji_name = (
|
||||
input["emojiName"] if "emojiName" in input else auto_role_rule.emoji_name
|
||||
)
|
||||
auto_role_rule.role_id = (
|
||||
input["roleId"] if "roleId" in input else auto_role_rule.role_id
|
||||
)
|
||||
auto_role_rule.emoji_name = input["emojiName"] if "emojiName" in input else auto_role_rule.emoji_name
|
||||
auto_role_rule.role_id = input["roleId"] if "roleId" in input else auto_role_rule.role_id
|
||||
|
||||
self._auto_roles.update_auto_role_rule(auto_role_rule)
|
||||
self._db.save_changes()
|
||||
@@ -95,9 +81,7 @@ class AutoRoleRuleMutation(QueryABC):
|
||||
|
||||
def resolve_delete_auto_role_rule(self, *_, id: int):
|
||||
auto_role_rule = self._auto_roles.get_auto_role_rule_by_id(id)
|
||||
self._can_user_mutate_data(
|
||||
auto_role_rule.auto_role.server, UserRoleEnum.moderator
|
||||
)
|
||||
self._can_user_mutate_data(auto_role_rule.auto_role.server, UserRoleEnum.moderator)
|
||||
|
||||
self._auto_roles.delete_auto_role_rule(auto_role_rule)
|
||||
self._db.save_changes()
|
||||
|
@@ -54,11 +54,7 @@ class LevelMutation(QueryABC):
|
||||
)
|
||||
|
||||
self._bot.loop.create_task(self._level_seeder.seed())
|
||||
return (
|
||||
self._levels.get_levels_by_server_id(level.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"])
|
||||
@@ -67,9 +63,7 @@ class LevelMutation(QueryABC):
|
||||
level.name = input["name"] if "name" in input else level.name
|
||||
level.color = input["color"] if "color" in input else level.color
|
||||
level.min_xp = input["minXp"] if "minXp" in input else level.min_xp
|
||||
level.permissions = (
|
||||
input["permissions"] if "permissions" in input else level.permissions
|
||||
)
|
||||
level.permissions = input["permissions"] if "permissions" in input else level.permissions
|
||||
|
||||
self._levels.update_level(level)
|
||||
self._db.save_changes()
|
||||
|
@@ -41,44 +41,28 @@ class ServerConfigMutation(QueryABC):
|
||||
raise ValueError("Id not set")
|
||||
|
||||
server_config = self._server_configs.get_server_config_by_id(int(input["id"]))
|
||||
self._can_user_mutate_data(
|
||||
Route.get_user().users[0].server, UserRoleEnum.technician
|
||||
)
|
||||
self._can_user_mutate_data(Route.get_user().users[0].server, UserRoleEnum.technician)
|
||||
|
||||
server_config.message_delete_timer = (
|
||||
input["messageDeleteTimer"]
|
||||
if "messageDeleteTimer" in input
|
||||
else server_config.message_delete_timer
|
||||
input["messageDeleteTimer"] if "messageDeleteTimer" in input else server_config.message_delete_timer
|
||||
)
|
||||
server_config.notification_chat_id = (
|
||||
input["notificationChatId"]
|
||||
if "notificationChatId" in input
|
||||
else server_config.notification_chat_id
|
||||
input["notificationChatId"] if "notificationChatId" in input else server_config.notification_chat_id
|
||||
)
|
||||
server_config.max_voice_state_hours = (
|
||||
input["maxVoiceStateHours"]
|
||||
if "maxVoiceStateHours" in input
|
||||
else server_config.max_voice_state_hours
|
||||
input["maxVoiceStateHours"] if "maxVoiceStateHours" in input else server_config.max_voice_state_hours
|
||||
)
|
||||
server_config.xp_per_message = (
|
||||
input["xpPerMessage"]
|
||||
if "xpPerMessage" in input
|
||||
else server_config.xp_per_message
|
||||
input["xpPerMessage"] if "xpPerMessage" in input else server_config.xp_per_message
|
||||
)
|
||||
server_config.xp_per_reaction = (
|
||||
input["xpPerReaction"]
|
||||
if "xpPerReaction" in input
|
||||
else server_config.xp_per_reaction
|
||||
input["xpPerReaction"] if "xpPerReaction" in input else server_config.xp_per_reaction
|
||||
)
|
||||
server_config.max_message_xp_per_hour = (
|
||||
input["maxMessageXpPerHour"]
|
||||
if "maxMessageXpPerHour" in input
|
||||
else server_config.max_message_xp_per_hour
|
||||
input["maxMessageXpPerHour"] if "maxMessageXpPerHour" in input else server_config.max_message_xp_per_hour
|
||||
)
|
||||
server_config.xp_per_ontime_hour = (
|
||||
input["xpPerOntimeHour"]
|
||||
if "xpPerOntimeHour" in input
|
||||
else server_config.xp_per_ontime_hour
|
||||
input["xpPerOntimeHour"] if "xpPerOntimeHour" in input else server_config.xp_per_ontime_hour
|
||||
)
|
||||
server_config.xp_per_event_participation = (
|
||||
input["xpPerEventParticipation"]
|
||||
@@ -86,29 +70,19 @@ class ServerConfigMutation(QueryABC):
|
||||
else server_config.xp_per_event_participation
|
||||
)
|
||||
server_config.xp_per_achievement = (
|
||||
input["xpPerAchievement"]
|
||||
if "xpPerAchievement" in input
|
||||
else server_config.xp_per_achievement
|
||||
input["xpPerAchievement"] if "xpPerAchievement" in input else server_config.xp_per_achievement
|
||||
)
|
||||
server_config.xp_for_birthday = (
|
||||
input["xpForBirthday"]
|
||||
if "xpForBirthday" in input
|
||||
else server_config.xp_for_birthday
|
||||
input["xpForBirthday"] if "xpForBirthday" in input else server_config.xp_for_birthday
|
||||
)
|
||||
server_config.afk_command_channel_id = (
|
||||
input["afkCommandChannelId"]
|
||||
if "afkCommandChannelId" in input
|
||||
else server_config.afk_command_channel_id
|
||||
input["afkCommandChannelId"] if "afkCommandChannelId" in input else server_config.afk_command_channel_id
|
||||
)
|
||||
server_config.help_voice_channel_id = (
|
||||
input["helpVoiceChannelId"]
|
||||
if "helpVoiceChannelId" in input
|
||||
else server_config.help_voice_channel_id
|
||||
input["helpVoiceChannelId"] if "helpVoiceChannelId" in input else server_config.help_voice_channel_id
|
||||
)
|
||||
server_config.team_channel_id = (
|
||||
input["teamChannelId"]
|
||||
if "teamChannelId" in input
|
||||
else server_config.team_channel_id
|
||||
input["teamChannelId"] if "teamChannelId" in input else server_config.team_channel_id
|
||||
)
|
||||
server_config.login_message_channel_id = (
|
||||
input["loginMessageChannelId"]
|
||||
@@ -116,9 +90,7 @@ class ServerConfigMutation(QueryABC):
|
||||
else server_config.login_message_channel_id
|
||||
)
|
||||
server_config.default_role_id = (
|
||||
input["defaultRoleId"]
|
||||
if "defaultRoleId" in input
|
||||
else server_config.default_role_id
|
||||
input["defaultRoleId"] if "defaultRoleId" in input else server_config.default_role_id
|
||||
)
|
||||
server_config.short_role_name_only_set_highest_role = (
|
||||
input["shortRoleNameOnlySetHighestRole"]
|
||||
@@ -150,33 +122,25 @@ class ServerConfigMutation(QueryABC):
|
||||
if "moderatorRoleIds" in input:
|
||||
team_role_ids.extend(
|
||||
[
|
||||
ServerTeamRoleIdsConfig(
|
||||
x, TeamMemberTypeEnum.moderator, server_config.server.id
|
||||
)
|
||||
ServerTeamRoleIdsConfig(x, TeamMemberTypeEnum.moderator, server_config.server.id)
|
||||
for x in input["moderatorRoleIds"]
|
||||
]
|
||||
)
|
||||
else:
|
||||
team_role_ids.extend(
|
||||
server_config.team_role_ids.where(
|
||||
lambda x: x.team_member_type == TeamMemberTypeEnum.moderator
|
||||
)
|
||||
server_config.team_role_ids.where(lambda x: x.team_member_type == TeamMemberTypeEnum.moderator)
|
||||
)
|
||||
|
||||
if "adminRoleIds" in input:
|
||||
team_role_ids.extend(
|
||||
[
|
||||
ServerTeamRoleIdsConfig(
|
||||
x, TeamMemberTypeEnum.admin, server_config.server.id
|
||||
)
|
||||
ServerTeamRoleIdsConfig(x, TeamMemberTypeEnum.admin, server_config.server.id)
|
||||
for x in input["adminRoleIds"]
|
||||
]
|
||||
)
|
||||
else:
|
||||
team_role_ids.extend(
|
||||
server_config.team_role_ids.where(
|
||||
lambda x: x.team_member_type == TeamMemberTypeEnum.admin
|
||||
)
|
||||
server_config.team_role_ids.where(lambda x: x.team_member_type == TeamMemberTypeEnum.admin)
|
||||
)
|
||||
|
||||
self._server_configs.update_server_config(server_config)
|
||||
@@ -188,15 +152,11 @@ class ServerConfigMutation(QueryABC):
|
||||
self._update_team_role_ids(server_config)
|
||||
|
||||
self._db.save_changes()
|
||||
self._bot.loop.create_task(
|
||||
self._config_service.reload_server_config(server_config.server)
|
||||
)
|
||||
self._bot.loop.create_task(self._config_service.reload_server_config(server_config.server))
|
||||
return server_config
|
||||
|
||||
def _update_afk_channel_ids(self, new_config: ServerConfig):
|
||||
old_config = self._server_configs.get_server_config_by_server(
|
||||
new_config.server.id
|
||||
)
|
||||
old_config = self._server_configs.get_server_config_by_server(new_config.server.id)
|
||||
for channel_id in old_config.afk_channel_ids:
|
||||
if channel_id in new_config.afk_channel_ids:
|
||||
continue
|
||||
@@ -214,13 +174,9 @@ class ServerConfigMutation(QueryABC):
|
||||
)
|
||||
|
||||
def _update_team_role_ids(self, new_config: ServerConfig):
|
||||
old_config = self._server_configs.get_server_config_by_server(
|
||||
new_config.server.id
|
||||
)
|
||||
old_config = self._server_configs.get_server_config_by_server(new_config.server.id)
|
||||
for role_id in old_config.team_role_ids:
|
||||
if role_id.role_id in new_config.team_role_ids.select(
|
||||
lambda x: int(x.role_id)
|
||||
):
|
||||
if role_id.role_id in new_config.team_role_ids.select(lambda x: int(x.role_id)):
|
||||
continue
|
||||
|
||||
self._server_configs.delete_server_team_role_id_config(role_id)
|
||||
@@ -232,9 +188,7 @@ class ServerConfigMutation(QueryABC):
|
||||
raise ValueError(f"Invalid roleId")
|
||||
|
||||
for role_id in new_config.team_role_ids:
|
||||
if role_id.role_id in old_config.team_role_ids.select(
|
||||
lambda x: str(x.role_id)
|
||||
):
|
||||
if role_id.role_id in old_config.team_role_ids.select(lambda x: str(x.role_id)):
|
||||
continue
|
||||
|
||||
self._server_configs.add_server_team_role_id_config(role_id)
|
||||
|
@@ -41,9 +41,7 @@ class ShortRoleNameMutation(QueryABC):
|
||||
server,
|
||||
)
|
||||
|
||||
result = self._short_role_names.find_short_role_names_by_role_id(
|
||||
short_role_name.role_id
|
||||
)
|
||||
result = self._short_role_names.find_short_role_names_by_role_id(short_role_name.role_id)
|
||||
if result.count() > 0:
|
||||
raise ValueError("Short name for role already exists")
|
||||
|
||||
@@ -58,9 +56,7 @@ class ShortRoleNameMutation(QueryABC):
|
||||
)
|
||||
|
||||
return (
|
||||
self._short_role_names.get_short_role_names_by_server_id(
|
||||
short_role_name.server.id
|
||||
)
|
||||
self._short_role_names.get_short_role_names_by_server_id(short_role_name.server.id)
|
||||
.where(get_new_short_role_name)
|
||||
.last()
|
||||
)
|
||||
@@ -69,15 +65,9 @@ class ShortRoleNameMutation(QueryABC):
|
||||
short_role_name = self._short_role_names.get_short_role_name_by_id(input["id"])
|
||||
self._can_user_mutate_data(short_role_name.server, UserRoleEnum.moderator)
|
||||
|
||||
short_role_name.short_name = (
|
||||
input["shortName"] if "shortName" in input else short_role_name.short_name
|
||||
)
|
||||
short_role_name.role_id = (
|
||||
input["roleId"] if "roleId" in input else short_role_name.role_id
|
||||
)
|
||||
short_role_name.position = (
|
||||
input["position"] if "position" in input else short_role_name.position
|
||||
)
|
||||
short_role_name.short_name = input["shortName"] if "shortName" in input else short_role_name.short_name
|
||||
short_role_name.role_id = input["roleId"] if "roleId" in input else short_role_name.role_id
|
||||
short_role_name.position = input["position"] if "position" in input else short_role_name.position
|
||||
|
||||
self._short_role_names.update_short_role_name(short_role_name)
|
||||
self._db.save_changes()
|
||||
|
@@ -43,9 +43,7 @@ class TechnicianConfigMutation(QueryABC):
|
||||
self._bot.loop.create_task(self._tech_seeder.seed())
|
||||
|
||||
technician_config = self._technician_configs.get_technician_config()
|
||||
self._can_user_mutate_data(
|
||||
Route.get_user().users[0].server, UserRoleEnum.technician
|
||||
)
|
||||
self._can_user_mutate_data(Route.get_user().users[0].server, UserRoleEnum.technician)
|
||||
|
||||
technician_config.help_command_reference_url = (
|
||||
input["helpCommandReferenceUrl"]
|
||||
@@ -53,19 +51,13 @@ class TechnicianConfigMutation(QueryABC):
|
||||
else technician_config.help_command_reference_url
|
||||
)
|
||||
technician_config.wait_for_restart = (
|
||||
input["waitForRestart"]
|
||||
if "waitForRestart" in input
|
||||
else technician_config.wait_for_restart
|
||||
input["waitForRestart"] if "waitForRestart" in input else technician_config.wait_for_restart
|
||||
)
|
||||
technician_config.wait_for_shutdown = (
|
||||
input["waitForShutdown"]
|
||||
if "waitForShutdown" in input
|
||||
else technician_config.wait_for_shutdown
|
||||
input["waitForShutdown"] if "waitForShutdown" in input else technician_config.wait_for_shutdown
|
||||
)
|
||||
technician_config.cache_max_messages = (
|
||||
input["cacheMaxMessages"]
|
||||
if "cacheMaxMessages" in input
|
||||
else technician_config.cache_max_messages
|
||||
input["cacheMaxMessages"] if "cacheMaxMessages" in input else technician_config.cache_max_messages
|
||||
)
|
||||
old_feature_flags = technician_config.feature_flags
|
||||
technician_config.feature_flags = (
|
||||
@@ -83,9 +75,7 @@ class TechnicianConfigMutation(QueryABC):
|
||||
technician_config.feature_flags[old_flag] = False
|
||||
|
||||
technician_config.ping_urls = (
|
||||
List(str, input["pingURLs"])
|
||||
if "pingURLs" in input
|
||||
else technician_config.ping_urls
|
||||
List(str, input["pingURLs"]) if "pingURLs" in input else technician_config.ping_urls
|
||||
)
|
||||
technician_config.technician_ids = (
|
||||
List(int).extend([int(x) for x in input["technicianIds"]])
|
||||
@@ -110,17 +100,13 @@ class TechnicianConfigMutation(QueryABC):
|
||||
if url in new_config.ping_urls:
|
||||
continue
|
||||
|
||||
self._technician_configs.delete_technician_ping_url_config(
|
||||
TechnicianPingUrlConfig(url)
|
||||
)
|
||||
self._technician_configs.delete_technician_ping_url_config(TechnicianPingUrlConfig(url))
|
||||
|
||||
for url in new_config.ping_urls:
|
||||
if url in old_config.ping_urls:
|
||||
continue
|
||||
|
||||
self._technician_configs.add_technician_ping_url_config(
|
||||
TechnicianPingUrlConfig(url)
|
||||
)
|
||||
self._technician_configs.add_technician_ping_url_config(TechnicianPingUrlConfig(url))
|
||||
|
||||
def _update_technician_ids(self, new_config: TechnicianConfig):
|
||||
old_config = self._technician_configs.get_technician_config()
|
||||
@@ -128,9 +114,7 @@ class TechnicianConfigMutation(QueryABC):
|
||||
if technician_id in new_config.technician_ids:
|
||||
continue
|
||||
|
||||
self._technician_configs.delete_technician_id_config(
|
||||
TechnicianIdConfig(technician_id)
|
||||
)
|
||||
self._technician_configs.delete_technician_id_config(TechnicianIdConfig(technician_id))
|
||||
|
||||
for technician_id in new_config.technician_ids:
|
||||
user = self._bot.get_user(technician_id)
|
||||
@@ -141,6 +125,4 @@ class TechnicianConfigMutation(QueryABC):
|
||||
if technician_id in old_config.technician_ids:
|
||||
continue
|
||||
|
||||
self._technician_configs.add_technician_id_config(
|
||||
TechnicianIdConfig(technician_id)
|
||||
)
|
||||
self._technician_configs.add_technician_id_config(TechnicianIdConfig(technician_id))
|
||||
|
@@ -63,9 +63,7 @@ class UserJoinedGameServerMutation(QueryABC):
|
||||
|
||||
def _get_api_key_str(self, api_key: ApiKey) -> str:
|
||||
return hashlib.sha256(
|
||||
f"{api_key.identifier}:{api_key.key}+{self._auth_settings.secret_key}".encode(
|
||||
"utf-8"
|
||||
)
|
||||
f"{api_key.identifier}:{api_key.key}+{self._auth_settings.secret_key}".encode("utf-8")
|
||||
).hexdigest()
|
||||
|
||||
def _get_api_key(self) -> Optional[ApiKey]:
|
||||
@@ -84,19 +82,13 @@ class UserJoinedGameServerMutation(QueryABC):
|
||||
game_ident = self._user_game_idents.get_user_game_ident_by_ident(input["ident"])
|
||||
user = game_ident.user
|
||||
|
||||
settings: ServerConfig = self._config.get_configuration(
|
||||
f"ServerConfig_{user.server.discord_id}"
|
||||
)
|
||||
if not FeatureFlagsSettings.get_flag_from_dict(
|
||||
settings.feature_flags, FeatureFlagsEnum.game_server
|
||||
):
|
||||
settings: ServerConfig = self._config.get_configuration(f"ServerConfig_{user.server.discord_id}")
|
||||
if not FeatureFlagsSettings.get_flag_from_dict(settings.feature_flags, FeatureFlagsEnum.game_server):
|
||||
raise Exception("Feature not activated")
|
||||
|
||||
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.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__,
|
||||
@@ -108,38 +100,26 @@ 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.id
|
||||
)
|
||||
return self._user_joined_game_servers.get_active_user_joined_game_server_by_user_id(user.id)
|
||||
|
||||
def resolve_user_left(self, *_, input: dict):
|
||||
game_ident = self._user_game_idents.find_user_game_ident_by_ident(
|
||||
input["ident"]
|
||||
)
|
||||
game_ident = self._user_game_idents.find_user_game_ident_by_ident(input["ident"])
|
||||
if game_ident is None:
|
||||
return
|
||||
user = game_ident.user
|
||||
|
||||
settings: ServerConfig = self._config.get_configuration(
|
||||
f"ServerConfig_{user.server.discord_id}"
|
||||
)
|
||||
if not FeatureFlagsSettings.get_flag_from_dict(
|
||||
settings.feature_flags, FeatureFlagsEnum.game_server
|
||||
):
|
||||
settings: ServerConfig = self._config.get_configuration(f"ServerConfig_{user.server.discord_id}")
|
||||
if not FeatureFlagsSettings.get_flag_from_dict(settings.feature_flags, FeatureFlagsEnum.game_server):
|
||||
raise Exception("Feature not activated")
|
||||
|
||||
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.id
|
||||
)
|
||||
active = self._user_joined_game_servers.find_active_user_joined_game_server_by_user_id(user.id)
|
||||
if active is None:
|
||||
return
|
||||
active.leaved_on = datetime.now()
|
||||
|
||||
settings: ServerConfig = self._config.get_configuration(
|
||||
f"ServerConfig_{user.server.discord_id}"
|
||||
)
|
||||
settings: ServerConfig = self._config.get_configuration(f"ServerConfig_{user.server.discord_id}")
|
||||
|
||||
ontime = round((active.leaved_on - active.joined_on).total_seconds() / 3600, 2)
|
||||
old_xp = user.xp
|
||||
|
@@ -48,9 +48,7 @@ class UserMutation(QueryABC):
|
||||
|
||||
auth_user = Route.get_user()
|
||||
member = self._bot.get_guild(user.server.discord_id).get_member(
|
||||
auth_user.users.where(lambda x: x.server.id == user.server.id)
|
||||
.single()
|
||||
.discord_id
|
||||
auth_user.users.where(lambda x: x.server.id == user.server.id).single().discord_id
|
||||
)
|
||||
if member.id != user.discord_id:
|
||||
self._can_user_mutate_data(user.server, UserRoleEnum.moderator)
|
||||
@@ -64,19 +62,9 @@ class UserMutation(QueryABC):
|
||||
if "userWarnings" in input:
|
||||
self._update_user_warning(user, input["userWarnings"])
|
||||
|
||||
user.xp = (
|
||||
new_xp
|
||||
if new_xp is not None
|
||||
else input["xp"]
|
||||
if "xp" in input
|
||||
else user.xp
|
||||
)
|
||||
user.xp = new_xp if new_xp is not None else input["xp"] if "xp" in input else user.xp
|
||||
|
||||
user.birthday = (
|
||||
datetime.strptime(input["birthday"], "%d.%m.%Y")
|
||||
if "birthday" in input
|
||||
else user.birthday
|
||||
)
|
||||
user.birthday = datetime.strptime(input["birthday"], "%d.%m.%Y") if "birthday" in input else user.birthday
|
||||
|
||||
self._users.update_user(user)
|
||||
self._db.save_changes()
|
||||
@@ -88,23 +76,15 @@ class UserMutation(QueryABC):
|
||||
def _update_user_warning(self, user: User, new_warnings: dict):
|
||||
old_warnings = self._user_warnings.get_user_warnings_by_user_id(user.id)
|
||||
for warning in old_warnings:
|
||||
if warning.id in [
|
||||
int(x["id"]) if "id" in x else None for x in new_warnings
|
||||
]:
|
||||
if warning.id in [int(x["id"]) if "id" in x else None for x in new_warnings]:
|
||||
continue
|
||||
|
||||
self._user_warning_service.remove_warnings(warning.id)
|
||||
|
||||
for warning in new_warnings:
|
||||
if "id" in warning and int(warning["id"]) in old_warnings.select(
|
||||
lambda x: x.id
|
||||
):
|
||||
if "id" in warning and int(warning["id"]) in old_warnings.select(lambda x: x.id):
|
||||
continue
|
||||
|
||||
member = self._bot.get_guild(user.server.discord_id).get_member(
|
||||
user.discord_id
|
||||
)
|
||||
member = self._bot.get_guild(user.server.discord_id).get_member(user.discord_id)
|
||||
author = self._users.get_user_by_id(int(warning["author"]))
|
||||
self._user_warning_service.add_warnings(
|
||||
member, warning["description"], author.discord_id
|
||||
)
|
||||
self._user_warning_service.add_warnings(member, warning["description"], author.discord_id)
|
||||
|
@@ -9,9 +9,7 @@ class AchievementQuery(DataQueryWithHistoryABC):
|
||||
self,
|
||||
db: DatabaseContextABC,
|
||||
):
|
||||
DataQueryWithHistoryABC.__init__(
|
||||
self, "Achievement", "AchievementsHistory", AchievementHistory, db
|
||||
)
|
||||
DataQueryWithHistoryABC.__init__(self, "Achievement", "AchievementsHistory", AchievementHistory, db)
|
||||
|
||||
self.set_field("id", lambda x, *_: x.id)
|
||||
self.set_field("name", lambda x, *_: x.name)
|
||||
|
@@ -18,9 +18,7 @@ class AutoRoleQuery(DataQueryWithHistoryABC):
|
||||
servers: ServerRepositoryABC,
|
||||
db: DatabaseContextABC,
|
||||
):
|
||||
DataQueryWithHistoryABC.__init__(
|
||||
self, "AutoRole", "AutoRolesHistory", AutoRoleHistory, db
|
||||
)
|
||||
DataQueryWithHistoryABC.__init__(self, "AutoRole", "AutoRolesHistory", AutoRoleHistory, db)
|
||||
|
||||
self._bot = bot
|
||||
self._auto_role_rules = auto_role_rules
|
||||
@@ -33,9 +31,7 @@ class AutoRoleQuery(DataQueryWithHistoryABC):
|
||||
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.id
|
||||
),
|
||||
lambda x, *_: self._auto_role_rules.get_auto_role_rules_by_auto_role_id(x.id),
|
||||
AutoRoleFilter,
|
||||
)
|
||||
|
||||
|
@@ -14,9 +14,7 @@ class AutoRoleRuleQuery(DataQueryWithHistoryABC):
|
||||
auto_roles: AutoRoleRepositoryABC,
|
||||
db: DatabaseContextABC,
|
||||
):
|
||||
DataQueryWithHistoryABC.__init__(
|
||||
self, "AutoRoleRule", "AutoRoleRulesHistory", AutoRoleRuleHistory, db
|
||||
)
|
||||
DataQueryWithHistoryABC.__init__(self, "AutoRoleRule", "AutoRoleRulesHistory", AutoRoleRuleHistory, db)
|
||||
|
||||
self._bot = bot
|
||||
self._auto_roles = auto_roles
|
||||
|
@@ -8,9 +8,7 @@ from bot_graphql.abc.data_query_with_history_abc import DataQueryWithHistoryABC
|
||||
|
||||
class ClientQuery(DataQueryWithHistoryABC):
|
||||
def __init__(self, bot: DiscordBotServiceABC, db: DatabaseContextABC):
|
||||
DataQueryWithHistoryABC.__init__(
|
||||
self, "Client", "ClientsHistory", ClientHistory, db
|
||||
)
|
||||
DataQueryWithHistoryABC.__init__(self, "Client", "ClientsHistory", ClientHistory, db)
|
||||
|
||||
self._bot = bot
|
||||
|
||||
|
@@ -21,9 +21,7 @@ class GuildQuery(QueryABC):
|
||||
self.set_field("roles", lambda g, *_: g.roles.order_by(lambda x: x.position))
|
||||
self.set_field(
|
||||
"emojis",
|
||||
lambda g, *_: List(discord.Emoji, g.emojis).order_by_descending(
|
||||
lambda x: x.created_at
|
||||
),
|
||||
lambda g, *_: List(discord.Emoji, g.emojis).order_by_descending(lambda x: x.created_at),
|
||||
)
|
||||
|
||||
def _resolve_channels(self, g: Guild, *_, filter=None):
|
||||
|
@@ -7,9 +7,7 @@ from bot_graphql.abc.data_query_with_history_abc import DataQueryWithHistoryABC
|
||||
|
||||
class KnownUserQuery(DataQueryWithHistoryABC):
|
||||
def __init__(self, db: DatabaseContextABC):
|
||||
DataQueryWithHistoryABC.__init__(
|
||||
self, "KnownUser", "KnownUsersHistory", KnownUserHistory, db
|
||||
)
|
||||
DataQueryWithHistoryABC.__init__(self, "KnownUser", "KnownUsersHistory", KnownUserHistory, db)
|
||||
|
||||
self.set_field("id", self.resolve_id)
|
||||
self.set_field("discordId", self.resolve_discord_id)
|
||||
|
@@ -7,9 +7,7 @@ from bot_graphql.abc.data_query_with_history_abc import DataQueryWithHistoryABC
|
||||
|
||||
class LevelQuery(DataQueryWithHistoryABC):
|
||||
def __init__(self, db: DatabaseContextABC):
|
||||
DataQueryWithHistoryABC.__init__(
|
||||
self, "Level", "LevelsHistory", LevelHistory, db
|
||||
)
|
||||
DataQueryWithHistoryABC.__init__(self, "Level", "LevelsHistory", LevelHistory, db)
|
||||
|
||||
self.set_field("id", self.resolve_id)
|
||||
self.set_field("name", self.resolve_name)
|
||||
|
@@ -8,25 +8,15 @@ from bot_graphql.abc.data_query_with_history_abc import DataQueryWithHistoryABC
|
||||
|
||||
class ServerConfigQuery(DataQueryWithHistoryABC):
|
||||
def __init__(self, db: DatabaseContextABC):
|
||||
DataQueryWithHistoryABC.__init__(
|
||||
self, "ServerConfig", "CFG_ServerHistory", ServerConfigHistory, db
|
||||
)
|
||||
DataQueryWithHistoryABC.__init__(self, "ServerConfig", "CFG_ServerHistory", ServerConfigHistory, db)
|
||||
|
||||
self.set_field("id", lambda config, *_: config.id)
|
||||
self.set_field(
|
||||
"messageDeleteTimer", lambda config, *_: config.message_delete_timer
|
||||
)
|
||||
self.set_field(
|
||||
"notificationChatId", lambda config, *_: config.notification_chat_id
|
||||
)
|
||||
self.set_field(
|
||||
"maxVoiceStateHours", lambda config, *_: config.max_voice_state_hours
|
||||
)
|
||||
self.set_field("messageDeleteTimer", lambda config, *_: config.message_delete_timer)
|
||||
self.set_field("notificationChatId", lambda config, *_: config.notification_chat_id)
|
||||
self.set_field("maxVoiceStateHours", lambda config, *_: config.max_voice_state_hours)
|
||||
self.set_field("xpPerMessage", lambda config, *_: config.xp_per_message)
|
||||
self.set_field("xpPerReaction", lambda config, *_: config.xp_per_reaction)
|
||||
self.set_field(
|
||||
"maxMessageXpPerHour", lambda config, *_: config.max_message_xp_per_hour
|
||||
)
|
||||
self.set_field("maxMessageXpPerHour", lambda config, *_: config.max_message_xp_per_hour)
|
||||
self.set_field("xpPerOntimeHour", lambda config, *_: config.xp_per_ontime_hour)
|
||||
self.set_field(
|
||||
"xpPerEventParticipation",
|
||||
@@ -34,16 +24,10 @@ class ServerConfigQuery(DataQueryWithHistoryABC):
|
||||
)
|
||||
self.set_field("xpPerAchievement", lambda config, *_: config.xp_per_achievement)
|
||||
self.set_field("xpForBirthday", lambda config, *_: config.xp_for_birthday)
|
||||
self.set_field(
|
||||
"afkCommandChannelId", lambda config, *_: config.afk_command_channel_id
|
||||
)
|
||||
self.set_field(
|
||||
"helpVoiceChannelId", lambda config, *_: config.help_voice_channel_id
|
||||
)
|
||||
self.set_field("afkCommandChannelId", lambda config, *_: config.afk_command_channel_id)
|
||||
self.set_field("helpVoiceChannelId", lambda config, *_: config.help_voice_channel_id)
|
||||
self.set_field("teamChannelId", lambda config, *_: config.team_channel_id)
|
||||
self.set_field(
|
||||
"loginMessageChannelId", lambda config, *_: config.login_message_channel_id
|
||||
)
|
||||
self.set_field("loginMessageChannelId", lambda config, *_: config.login_message_channel_id)
|
||||
self.set_field("defaultRoleId", lambda config, *_: config.default_role_id)
|
||||
self.set_field(
|
||||
"shortRoleNameOnlySetHighestRole",
|
||||
@@ -57,10 +41,7 @@ class ServerConfigQuery(DataQueryWithHistoryABC):
|
||||
"featureFlag",
|
||||
lambda config, *_: List(
|
||||
any,
|
||||
[
|
||||
{"key": x, "value": config.feature_flags[x]}
|
||||
for x in config.feature_flags
|
||||
],
|
||||
[{"key": x, "value": config.feature_flags[x]} for x in config.feature_flags],
|
||||
),
|
||||
)
|
||||
self.set_field("afkChannelIds", lambda config, *_: config.afk_channel_ids)
|
||||
|
@@ -45,9 +45,7 @@ class ServerQuery(DataQueryWithHistoryABC):
|
||||
short_role_names: ShortRoleNameRepositoryABC,
|
||||
server_configs: ServerConfigRepositoryABC,
|
||||
):
|
||||
DataQueryWithHistoryABC.__init__(
|
||||
self, "Server", "ServersHistory", ServerHistory, db
|
||||
)
|
||||
DataQueryWithHistoryABC.__init__(self, "Server", "ServersHistory", ServerHistory, db)
|
||||
|
||||
self._config = config
|
||||
self._bot = bot
|
||||
@@ -94,9 +92,7 @@ class ServerQuery(DataQueryWithHistoryABC):
|
||||
)
|
||||
self.add_collection(
|
||||
"shortRoleName",
|
||||
lambda server, *_: short_role_names.get_short_role_names_by_server_id(
|
||||
server.id
|
||||
),
|
||||
lambda server, *_: short_role_names.get_short_role_names_by_server_id(server.id),
|
||||
ShortRoleNameFilter,
|
||||
)
|
||||
self.set_field(
|
||||
@@ -105,9 +101,7 @@ class ServerQuery(DataQueryWithHistoryABC):
|
||||
)
|
||||
self.set_field(
|
||||
"hasFeatureFlag",
|
||||
lambda server, *_, **kwargs: self._resolve_has_feature_flag(
|
||||
server, *_, **kwargs
|
||||
),
|
||||
lambda server, *_, **kwargs: self._resolve_has_feature_flag(server, *_, **kwargs),
|
||||
)
|
||||
|
||||
@staticmethod
|
||||
@@ -127,14 +121,10 @@ class ServerQuery(DataQueryWithHistoryABC):
|
||||
return server.icon_url
|
||||
|
||||
def _resolve_has_feature_flag(self, server: Server, *_, **kwargs):
|
||||
settings: ServerConfig = self._config.get_configuration(
|
||||
f"ServerConfig_{server.discord_id}"
|
||||
)
|
||||
settings: ServerConfig = self._config.get_configuration(f"ServerConfig_{server.discord_id}")
|
||||
if "flag" not in kwargs:
|
||||
return False
|
||||
return {
|
||||
"key": kwargs["flag"],
|
||||
"value": FeatureFlagsSettings.get_flag_from_dict(
|
||||
settings.feature_flags, FeatureFlagsEnum(kwargs["flag"])
|
||||
),
|
||||
"value": FeatureFlagsSettings.get_flag_from_dict(settings.feature_flags, FeatureFlagsEnum(kwargs["flag"])),
|
||||
}
|
||||
|
@@ -9,9 +9,7 @@ class ShortRoleNameQuery(DataQueryWithHistoryABC):
|
||||
self,
|
||||
db: DatabaseContextABC,
|
||||
):
|
||||
DataQueryWithHistoryABC.__init__(
|
||||
self, "ShortRoleName", "ShortRoleNamesHistory", ShortRoleNameHistory, db
|
||||
)
|
||||
DataQueryWithHistoryABC.__init__(self, "ShortRoleName", "ShortRoleNamesHistory", ShortRoleNameHistory, db)
|
||||
|
||||
self.set_field("id", lambda x, *_: x.id)
|
||||
self.set_field("shortName", lambda x, *_: x.short_name)
|
||||
|
@@ -18,9 +18,6 @@ class TechnicianConfigHistoryQuery(HistoryQueryABC):
|
||||
"featureFlag",
|
||||
lambda config, *_: List(
|
||||
any,
|
||||
[
|
||||
{"key": x, "value": config.feature_flags[x]}
|
||||
for x in config.feature_flags
|
||||
],
|
||||
[{"key": x, "value": config.feature_flags[x]} for x in config.feature_flags],
|
||||
),
|
||||
)
|
||||
|
@@ -31,10 +31,7 @@ class TechnicianConfigQuery(DataQueryWithHistoryABC):
|
||||
"featureFlag",
|
||||
lambda config, *_: List(
|
||||
any,
|
||||
[
|
||||
{"key": x, "value": config.feature_flags[x]}
|
||||
for x in config.feature_flags
|
||||
],
|
||||
[{"key": x, "value": config.feature_flags[x]} for x in config.feature_flags],
|
||||
),
|
||||
)
|
||||
self.set_field("pingURLs", lambda config, *_: config.ping_urls)
|
||||
|
@@ -66,16 +66,12 @@ class UserQuery(DataQueryWithHistoryABC):
|
||||
)
|
||||
self.add_collection(
|
||||
"joinedVoiceChannel",
|
||||
lambda user, *_: self._ujvs.get_user_joined_voice_channels_by_user_id(
|
||||
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.id
|
||||
),
|
||||
lambda user, *_: self._user_joined_game_server.get_user_joined_game_servers_by_user_id(user.id),
|
||||
UserJoinedGameServerFilter,
|
||||
)
|
||||
self.add_collection(
|
||||
|
@@ -9,9 +9,7 @@ class UserWarningQuery(DataQueryWithHistoryABC):
|
||||
self,
|
||||
db: DatabaseContextABC,
|
||||
):
|
||||
DataQueryWithHistoryABC.__init__(
|
||||
self, "UserWarning", "UserWarningsHistory", UserWarningsHistory, db
|
||||
)
|
||||
DataQueryWithHistoryABC.__init__(self, "UserWarning", "UserWarningsHistory", UserWarningsHistory, db)
|
||||
|
||||
self.set_field("id", lambda x, *_: x.id)
|
||||
self.set_field("user", lambda x, *_: x.user)
|
||||
|
@@ -62,9 +62,7 @@ class Query(QueryABC):
|
||||
):
|
||||
QueryABC.__init__(self, "Query")
|
||||
|
||||
self.add_collection(
|
||||
"autoRole", lambda *_: auto_roles.get_auto_roles(), AutoRoleFilter
|
||||
)
|
||||
self.add_collection("autoRole", lambda *_: auto_roles.get_auto_roles(), AutoRoleFilter)
|
||||
self.add_collection(
|
||||
"autoRoleRule",
|
||||
lambda *_: auto_roles.get_auto_role_rules(),
|
||||
@@ -91,9 +89,7 @@ class Query(QueryABC):
|
||||
UserJoinedGameServerFilter,
|
||||
)
|
||||
self.add_collection("user", lambda *_: users.get_users(), UserFilter)
|
||||
self.add_collection(
|
||||
"achievement", lambda *_: achievements.get_achievements(), AchievementFilter
|
||||
)
|
||||
self.add_collection("achievement", lambda *_: achievements.get_achievements(), AchievementFilter)
|
||||
self.add_collection(
|
||||
"shortRoleName",
|
||||
lambda *_: short_role_names.get_short_role_names(),
|
||||
@@ -105,24 +101,14 @@ class Query(QueryABC):
|
||||
UserWarningFilter,
|
||||
)
|
||||
|
||||
self.set_field(
|
||||
"technicianConfig", lambda *_: technician_config.get_technician_config()
|
||||
)
|
||||
self.set_field("technicianConfig", lambda *_: technician_config.get_technician_config())
|
||||
|
||||
self.set_field(
|
||||
"achievementAttributes", lambda *_: achievement_service.get_attributes()
|
||||
)
|
||||
self.set_field(
|
||||
"achievementOperators", lambda *_: achievement_service.get_operators()
|
||||
)
|
||||
self.set_field("achievementAttributes", lambda *_: achievement_service.get_attributes())
|
||||
self.set_field("achievementOperators", lambda *_: achievement_service.get_operators())
|
||||
self.set_field(
|
||||
"shortRoleNamePositions",
|
||||
lambda *_: [x.value for x in ShortRoleNamePositionEnum],
|
||||
)
|
||||
|
||||
self.set_field(
|
||||
"possibleFeatureFlags", lambda *_: [e.value for e in FeatureFlagsEnum]
|
||||
)
|
||||
self.set_field(
|
||||
"discord", lambda *_: Discord(bot.guilds, List(any).extend(bot.users))
|
||||
)
|
||||
self.set_field("possibleFeatureFlags", lambda *_: [e.value for e in FeatureFlagsEnum])
|
||||
self.set_field("discord", lambda *_: Discord(bot.guilds, List(any).extend(bot.users)))
|
||||
|
@@ -10,9 +10,7 @@ from bot_graphql.query import Query
|
||||
|
||||
class Schema:
|
||||
def __init__(self, query: Query, mutation: Mutation, queries: list[QueryABC]):
|
||||
type_defs = load_schema_from_path(
|
||||
os.path.join(os.path.dirname(os.path.realpath(__file__)), "graphql/")
|
||||
)
|
||||
type_defs = load_schema_from_path(os.path.join(os.path.dirname(os.path.realpath(__file__)), "graphql/"))
|
||||
self._schema = make_executable_schema(type_defs, query, mutation, *queries)
|
||||
|
||||
@property
|
||||
|
Reference in New Issue
Block a user