Added short role names components #378
This commit is contained in:
@@ -35,6 +35,7 @@ type Server implements TableWithHistoryQuery {
|
||||
shortRoleNames(filter: ShortRoleNameFilter, page: Page, sort: Sort): [ShortRoleName]
|
||||
|
||||
config: ServerConfig
|
||||
hasFeatureFlag(flag: String): Boolean
|
||||
|
||||
createdAt: String
|
||||
modifiedAt: String
|
||||
|
@@ -1,6 +1,9 @@
|
||||
from cpl_core.configuration import ConfigurationABC
|
||||
from cpl_core.database.context import DatabaseContextABC
|
||||
from cpl_discord.service import DiscordBotServiceABC
|
||||
|
||||
from bot_core.configuration.feature_flags_enum import FeatureFlagsEnum
|
||||
from bot_core.configuration.feature_flags_settings import FeatureFlagsSettings
|
||||
from bot_data.abc.achievement_repository_abc import AchievementRepositoryABC
|
||||
from bot_data.abc.auto_role_repository_abc import AutoRoleRepositoryABC
|
||||
from bot_data.abc.client_repository_abc import ClientRepositoryABC
|
||||
@@ -12,6 +15,7 @@ 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_config import ServerConfig
|
||||
from bot_data.model.server_history import ServerHistory
|
||||
from bot_graphql.abc.data_query_with_history_abc import DataQueryWithHistoryABC
|
||||
from bot_graphql.filter.achievement_filter import AchievementFilter
|
||||
@@ -25,6 +29,7 @@ from bot_graphql.filter.user_filter import UserFilter
|
||||
class ServerQuery(DataQueryWithHistoryABC):
|
||||
def __init__(
|
||||
self,
|
||||
config: ConfigurationABC,
|
||||
bot: DiscordBotServiceABC,
|
||||
db: DatabaseContextABC,
|
||||
auto_roles: AutoRoleRepositoryABC,
|
||||
@@ -40,6 +45,7 @@ class ServerQuery(DataQueryWithHistoryABC):
|
||||
):
|
||||
DataQueryWithHistoryABC.__init__(self, "Server", "ServersHistory", ServerHistory, db)
|
||||
|
||||
self._config = config
|
||||
self._bot = bot
|
||||
self._auto_roles = auto_roles
|
||||
self._clients = clients
|
||||
@@ -73,6 +79,9 @@ class ServerQuery(DataQueryWithHistoryABC):
|
||||
ShortRoleNameFilter,
|
||||
)
|
||||
self.set_field("config", lambda server, *_: server_configs.get_server_config_by_server(server.id))
|
||||
self.set_field(
|
||||
"hasFeatureFlag", lambda server, *_, **kwargs: self._resolve_has_feature_flag(server, *_, **kwargs)
|
||||
)
|
||||
|
||||
@staticmethod
|
||||
def resolve_id(server: Server, *_):
|
||||
@@ -89,3 +98,9 @@ class ServerQuery(DataQueryWithHistoryABC):
|
||||
@staticmethod
|
||||
def resolve_icon_url(server: Server, *_):
|
||||
return server.icon_url
|
||||
|
||||
def _resolve_has_feature_flag(self, server: Server, *_, **kwargs):
|
||||
settings: ServerConfig = self._config.get_configuration(f"ServerConfig_{server.discord_id}")
|
||||
if "flag" not in kwargs:
|
||||
return False
|
||||
return FeatureFlagsSettings.get_flag_from_dict(settings.feature_flags, FeatureFlagsEnum(kwargs["flag"]))
|
||||
|
Reference in New Issue
Block a user