Refactored db setup; extended layout to add header widget zone
This commit is contained in:
38
src/utils/db.py
Normal file
38
src/utils/db.py
Normal file
@@ -0,0 +1,38 @@
|
||||
# Python imports
|
||||
from typing import Optional
|
||||
from os import path
|
||||
|
||||
# Lib imports
|
||||
from sqlmodel import Session, create_engine
|
||||
|
||||
# Application imports
|
||||
from .models import SQLModel, User
|
||||
|
||||
|
||||
|
||||
class DB:
|
||||
def __init__(self):
|
||||
super(DB, self).__init__()
|
||||
|
||||
self.create_engine()
|
||||
|
||||
# NOTE: for sake of example we create an admin user with no password set.
|
||||
self.add_user_entry(name = "Admin", password = "", email = "admin@domain.com")
|
||||
|
||||
def create_engine(self):
|
||||
db_path = f"sqlite:///{settings_manager.get_home_config_path()}/database.db"
|
||||
self.engine = create_engine(db_path)
|
||||
|
||||
SQLModel.metadata.create_all(self.engine)
|
||||
|
||||
def _add_entry(self, entry):
|
||||
with Session(self.engine) as session:
|
||||
session.add(entry)
|
||||
session.commit()
|
||||
|
||||
|
||||
def add_user_entry(self, name = None, password = None, email = None):
|
||||
if not name or not password or not email: return
|
||||
|
||||
user = User(name, password, email)
|
||||
self._add_entry(user)
|
@@ -2,7 +2,7 @@
|
||||
from typing import Optional
|
||||
|
||||
# Lib imports
|
||||
from sqlmodel import Field, Session, SQLModel, create_engine
|
||||
from sqlmodel import SQLModel, Field
|
||||
|
||||
# Application imports
|
||||
|
||||
@@ -13,13 +13,3 @@ class User(SQLModel, table = True):
|
||||
name: str
|
||||
password: str
|
||||
email: Optional[str] = None
|
||||
|
||||
|
||||
# NOTE: for sake of example we create an admin user with no password set.
|
||||
user = User(name = "Admin", password = "", email = "admin@domain.com")
|
||||
engine = create_engine("sqlite:///database.db")
|
||||
SQLModel.metadata.create_all(engine)
|
||||
|
||||
with Session(engine) as session:
|
||||
session.add(user)
|
||||
session.commit()
|
||||
|
Reference in New Issue
Block a user