Added database context

This commit is contained in:
2021-11-30 14:51:58 +01:00
parent 01cf17ef86
commit 14ecc46d92
14 changed files with 325 additions and 27 deletions

View File

@@ -21,7 +21,7 @@ class Gismo(ApplicationABC):
async def main(self):
try:
self._logger.trace(__name__, f'Try to start {BotService}')
await self._bot.start_async()
# await self._bot.start_async()
except Exception as e:
self._logger.error(__name__, 'Start failed', e)

View File

@@ -5,6 +5,16 @@
"ConsoleLogLevel": "TRACE",
"FileLogLevel": "TRACE"
},
"DatabaseSettings": {
"Host": "localhost",
"User": "sh_gismo",
"Password": "c2hfZ2lzbW8=",
"Database": "sh_gismo_dev",
"Charset": "utf8mb4",
"UseUnicode": "true",
"Buffered": "true",
"AuthPlugin": "mysql_native_password"
},
"Discord": {
"Token": "OTExNTc0NDQyMzMxNzM0MDI2.YZjX2w.9yhsrTfrmkoDUqRJVzV5FVEwF3U"
},

View File

@@ -1,9 +1,10 @@
from datetime import datetime
import os
from datetime import datetime
from typing import Optional
from cpl_core.application import StartupABC
from cpl_core.configuration import ConfigurationABC
from cpl_core.database import DatabaseSettings
from cpl_core.dependency_injection import (ServiceCollectionABC,
ServiceProviderABC)
from cpl_core.environment import ApplicationEnvironment
@@ -12,6 +13,11 @@ from gismo_core.abc.bot_service_abc import BotServiceABC
from gismo_core.abc.message_service_abc import MessageServiceABC
from gismo_core.service.bot_service import BotService
from gismo_core.service.message_service import MessageService
from gismo_data.abc.server_repository_abc import ServerRepositoryABC
from gismo_data.abc.user_repository_abc import UserRepositoryABC
from gismo_data.db_context import DBContext
from gismo_data.service.server_repository_service import ServerRepositoryService
from gismo_data.service.user_repository_service import UserRepositoryService
from modules.boot_log.boot_log import BootLog
from modules_core.abc.module_abc import ModuleABC
from modules_core.abc.module_service_abc import ModuleServiceABC
@@ -42,10 +48,15 @@ class Startup(StartupABC):
async def configure_services(self, services: ServiceCollectionABC, environment: ApplicationEnvironment) -> ServiceProviderABC:
services.add_logging()
services.add_db_context(DBContext, self._config.get_configuration(DatabaseSettings))
services.add_singleton(ModuleServiceABC, ModuleService)
services.add_singleton(BotServiceABC, BotService)
services.add_transient(MessageServiceABC, MessageService)
services.add_transient(ServerRepositoryABC, ServerRepositoryService)
services.add_transient(UserRepositoryABC, UserRepositoryService)
services.add_transient(ModuleABC, BootLog)
provider: ServiceProviderABC = services.build_service_provider()