from cpl import auth from cpl.application.abc.startup_abc import StartupABC from cpl.auth import permission from cpl.core.configuration import Configuration from cpl.core.environment import Environment from cpl.core.log import Logger, LoggerABC from cpl.database import mysql from cpl.database.abc.data_access_object_abc import DataAccessObjectABC from cpl.dependency import ServiceCollection from model.city_dao import CityDao from model.user_dao import UserDao class Startup(StartupABC): @staticmethod async def configure_configuration(): Configuration.add_json_file(f"appsettings.json") Configuration.add_json_file(f"appsettings.{Environment.get_environment()}.json") Configuration.add_json_file(f"appsettings.{Environment.get_host_name()}.json", optional=True) @staticmethod async def configure_services(services: ServiceCollection): services.add_module(mysql) services.add_module(auth) services.add_module(permission) services.add_transient(DataAccessObjectABC, UserDao) services.add_transient(DataAccessObjectABC, CityDao) services.add_singleton(LoggerABC, Logger)