diff --git a/bot/docker b/bot/docker index 95a4530a..898c27d2 160000 --- a/bot/docker +++ b/bot/docker @@ -1 +1 @@ -Subproject commit 95a4530ae594f3be66e36e2b1af9b86452d9fc3e +Subproject commit 898c27d206f3c849743dc81fdf4050e22f413518 diff --git a/bot/src/bot_core/service/config_service.py b/bot/src/bot_core/service/config_service.py index 657d972d..9e231168 100644 --- a/bot/src/bot_core/service/config_service.py +++ b/bot/src/bot_core/service/config_service.py @@ -7,6 +7,7 @@ from bot_data.abc.technician_config_repository_abc import TechnicianConfigReposi from bot_data.model.server import Server from bot_data.model.technician_config import TechnicianConfig from bot_data.service.server_config_seeder import ServerConfigSeeder +from bot_data.service.technician_config_seeder import TechnicianConfigSeeder class ConfigService: @@ -16,17 +17,24 @@ class ConfigService: services: ServiceProviderABC, technician_config_repo: TechnicianConfigRepositoryABC, server_config_repo: ServerConfigRepositoryABC, + technician_seeder: TechnicianConfigSeeder, server_seeder: ServerConfigSeeder, ): self._config = config self._services = services self._technician_config_repo = technician_config_repo + self._technician_seeder = technician_seeder self._server_config_repo = server_config_repo self._server_seeder = server_seeder - def reload_technician_config(self): - technician_config = self._technician_config_repo.get_technician_config() + async def reload_technician_config(self): + try: + technician_config = self._technician_config_repo.get_technician_config() + except Exception as e: + await self._technician_seeder.seed() + technician_config = self._technician_config_repo.get_technician_config() + self._config.add_configuration(TechnicianConfig, technician_config) self._config.add_configuration( FeatureFlagsSettings, diff --git a/bot/src/bot_graphql/mutations/technician_config_mutation.py b/bot/src/bot_graphql/mutations/technician_config_mutation.py index f5dbbaa2..b520be37 100644 --- a/bot/src/bot_graphql/mutations/technician_config_mutation.py +++ b/bot/src/bot_graphql/mutations/technician_config_mutation.py @@ -91,7 +91,7 @@ class TechnicianConfigMutation(QueryABC): self._update_technician_ids(technician_config) self._db.save_changes() - self._config_service.reload_technician_config() + self._bot.loop.create_task(self._config_service.reload_technician_config()) return technician_config def _update_ping_urls(self, new_config: TechnicianConfig): diff --git a/bot/src/modules/config/config_extension.py b/bot/src/modules/config/config_extension.py index ce164180..810d2214 100644 --- a/bot/src/modules/config/config_extension.py +++ b/bot/src/modules/config/config_extension.py @@ -19,4 +19,4 @@ class ConfigExtension(ApplicationExtensionABC): logger: LoggerABC = services.get_service(LoggerABC) logger.debug(__name__, "Config extension started") config: ConfigService = services.get_service(ConfigService) - config.reload_technician_config() + await config.reload_technician_config()