app_resources.py 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. import pathlib
  2. import sqlmodel
  3. import sqlalchemy
  4. import sqlalchemy.engine.base
  5. from .users_loader import users_loader
  6. from .users_collection import users_collection
  7. from .product_app import product_app
  8. from .users_app import users_app
  9. class app_resources:
  10. def __init__(self, config: object) -> None:
  11. self.__config = config
  12. self.__database = sqlmodel.create_engine(self.config.database_uri)
  13. self.__users = users_loader(self.config.users_path).collection
  14. sqlmodel.SQLModel.metadata.create_all(self.database)
  15. self.__product_app = product_app(self.database, self.users)
  16. self.__users_app = users_app(self.users)
  17. @property
  18. def users_app(self) -> users_app:
  19. return self.__users_app
  20. @property
  21. def product_app(self) -> product_app:
  22. return self.__product_app
  23. @property
  24. def database(self) -> sqlalchemy.engine.base.Engine:
  25. return self.__database
  26. @property
  27. def users(self) -> users_collection:
  28. return self.__users
  29. @property
  30. def config(self) -> object:
  31. return self.__config