Added maintenance option to technician settings #424
All checks were successful
Deploy dev on push / on-push-deploy_sh-edraft (push) Successful in 4m20s

This commit is contained in:
2023-11-06 18:56:04 +01:00
parent e1258151de
commit 6e79811bc9
20 changed files with 99 additions and 18 deletions

View File

@@ -1,9 +1,12 @@
from cpl_core.configuration import ConfigurationABC
from cpl_core.database.context import DatabaseContextABC
from cpl_discord.service import DiscordBotServiceABC
from cpl_query.extension import List
from bot_api.logging.api_logger import ApiLogger
from bot_api.route.route import Route
from bot_core.abc.client_utils_abc import ClientUtilsABC
from bot_core.environment_variables import MAINTENANCE
from bot_core.service.config_service import ConfigService
from bot_data.abc.server_repository_abc import ServerRepositoryABC
from bot_data.abc.technician_config_repository_abc import TechnicianConfigRepositoryABC
@@ -18,6 +21,7 @@ from bot_graphql.abc.query_abc import QueryABC
class TechnicianConfigMutation(QueryABC):
def __init__(
self,
config: ConfigurationABC,
logger: ApiLogger,
bot: DiscordBotServiceABC,
servers: ServerRepositoryABC,
@@ -25,9 +29,11 @@ class TechnicianConfigMutation(QueryABC):
db: DatabaseContextABC,
config_service: ConfigService,
tech_seeder: TechnicianConfigSeeder,
client_utils: ClientUtilsABC,
):
QueryABC.__init__(self, "TechnicianConfigMutation")
self._config = config
self._logger = logger
self._bot = bot
self._servers = servers
@@ -35,6 +41,7 @@ class TechnicianConfigMutation(QueryABC):
self._db = db
self._config_service = config_service
self._tech_seeder = tech_seeder
self._client_utils = client_utils
self.set_field("updateTechnicianConfig", self.resolve_update_technician_config)
@@ -62,7 +69,7 @@ class TechnicianConfigMutation(QueryABC):
technician_config.max_steam_offer_count = (
input["maxSteamOfferCount"] if "maxSteamOfferCount" in input else technician_config.max_steam_offer_count
)
technician_config.max_steam_offer_count = (
technician_config.maintenance = (
input["maintenance"] if "maintenance" in input else technician_config.maintenance
)
old_feature_flags = technician_config.feature_flags
@@ -97,6 +104,9 @@ class TechnicianConfigMutation(QueryABC):
self._update_technician_ids(technician_config)
self._db.save_changes()
if technician_config.maintenance != self._config.get_configuration(MAINTENANCE):
self._bot.loop.create_task(self._client_utils.set_maintenance_mode(technician_config.maintenance))
self._bot.loop.create_task(self._config_service.reload_technician_config())
return technician_config

View File

@@ -15,6 +15,7 @@ class TechnicianConfigHistoryQuery(HistoryQueryABC):
self.set_field("waitForShutdown", lambda config, *_: config.wait_for_shutdown)
self.set_field("cacheMaxMessages", lambda config, *_: config.cache_max_messages)
self.set_field("maxSteamOfferCount", lambda config, *_: config.max_steam_offer_count)
self.set_field("maintenance", lambda config, *_: config.maintenance)
self.add_collection(
"featureFlag",
lambda config, *_: List(

View File

@@ -28,6 +28,7 @@ class TechnicianConfigQuery(DataQueryWithHistoryABC):
self.set_field("waitForShutdown", lambda config, *_: config.wait_for_shutdown)
self.set_field("cacheMaxMessages", lambda config, *_: config.cache_max_messages)
self.set_field("maxSteamOfferCount", lambda config, *_: config.max_steam_offer_count)
self.set_field("maintenance", lambda config, *_: config.maintenance)
self.add_collection(
"featureFlag",
lambda config, *_: List(