summer_course_2024/persistence/db_setup.py

37 lines
1.5 KiB
Python
Raw Normal View History

2022-12-07 19:06:17 -05:00
from persistence.models import City
from persistence import BaseRepo
from persistence.models import HeatPumpSimulation
from persistence.models import User
from persistence.repositories import UserRepo
from persistence.models import UserRoles
2022-12-14 17:49:29 -05:00
from hub_logger import logger
2022-12-07 19:06:17 -05:00
class DBSetup:
def __init__(self, db_name, app_env, dotenv_path):
"""
Creates database tables and a default admin user
:param db_name:
:param app_env:
:param dotenv_path:
"""
2022-12-07 19:06:17 -05:00
repo = BaseRepo(db_name=db_name, app_env=app_env, dotenv_path=dotenv_path)
2023-01-10 12:52:20 -05:00
User.__table__.create(bind=repo.engine, checkfirst=True)
2022-12-07 19:06:17 -05:00
City.__table__.create(bind=repo.engine, checkfirst=True)
HeatPumpSimulation.__table__.create(bind=repo.engine, checkfirst=True)
self._user_repo = UserRepo(db_name=db_name, app_env=app_env, dotenv_path=dotenv_path)
self._create_admin_user(self._user_repo)
def _create_admin_user(self, user_repo):
2022-12-08 20:55:12 -05:00
email = 'admin@hub.com'
password = 'HubAdmin#!98'
print('Creating default admin user...')
2022-12-14 17:49:29 -05:00
user = user_repo.insert('Administrator', email, password, UserRoles.Admin)
if type(user) is dict:
logger.info(user)
else:
print(f'Created Admin user with email: {email}, password: {password} and role: {UserRoles.Admin}')
logger.info(f'Created Admin user with email: {email}, password: {password} and role: {UserRoles.Admin}')
print('Remember to change the admin default password and email address with the UserFactory')