import logging from app.classes.models.users import Users, users_helper from app.classes.shared.helpers import helper from app.classes.shared.console import console # To disable warning about unused import ; Users is imported from here in other places # pylint: disable=self-assigning-variable Users = Users try: # pylint: disable=unused-import from peewee import SqliteDatabase, fn from playhouse.shortcuts import model_to_dict except ModuleNotFoundError as err: helper.auto_installer_fix(err) logger = logging.getLogger(__name__) peewee_logger = logging.getLogger("peewee") peewee_logger.setLevel(logging.INFO) database = SqliteDatabase( helper.db_path, pragmas={"journal_mode": "wal", "cache_size": -1024 * 10} ) class db_builder: @staticmethod def default_settings(): logger.info("Fresh Install Detected - Creating Default Settings") console.info("Fresh Install Detected - Creating Default Settings") default_data = helper.find_default_password() username = default_data.get("username", "admin") password = default_data.get("password", "crafty") users_helper.add_user( username=username, password=password, email="default@example.com", superuser=True, ) @staticmethod def is_fresh_install(): try: user = users_helper.get_by_id(1) if user: return False except: return True class db_shortcuts: # ********************************************************************************** # Generic Databse Methods # ********************************************************************************** @staticmethod def return_rows(query): rows = [] try: if query.count() > 0: for s in query: rows.append(model_to_dict(s)) except Exception as e: logger.warning(f"Database Error: {e}") return rows @staticmethod def return_db_rows(model): data = [model_to_dict(row) for row in model] return data # ********************************************************************************** # Static Accessors # ********************************************************************************** installer = db_builder() db_helper = db_shortcuts()