import sqlmodel import sqlalchemy.engine.base from .settings import settings from .user import user from .user import user_builder from .user_loader import user_loader class application: def __init__(self, config: settings) -> None: self.__config = config self.__init_database(config.database) def get_provider(self) -> dict: return { "app_name": self.config.app_name, "description": self.config.app_description, "organization_name": self.config.organization_name } def post_register(self, nick: str, password: str) -> dict: builder = user_builder() builder.nick = nick builder.set_password(password) with user_loader(self.database) as loader: if loader.register(builder.result): return { "status": True } return { "status": False } @property def config(self) -> settings: return self.__config @property def database(self) -> sqlalchemy.engine.base.Engine: return self.__database def __init_database(self, url: str) -> None: self.__database = sqlmodel.create_engine(url) sqlmodel.SQLModel.metadata.create_all(self.__database)