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