Python-With-Gtk-Template/src/utils/db.py

39 lines
1.0 KiB
Python

# 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)