Files

48 lines
1.3 KiB
Python

from enum import Enum
from app import db
class Setting(db.Model):
class Keys(Enum):
HASSCALL_USERNAME = "username"
HASSCALL_PASSWORD = "password"
HASSCALL_LOGIN_REQUIRED = "login_required"
HASS_URL = "hass_url"
HASS_TOKEN = "hass_token"
FEEDBACK = "feedback_level"
# Table structure
__tablename__ = "settings"
key = db.Column(db.String(64), primary_key=True )
value = db.Column(db.String(256) )
def __init__(self, key:Keys, value:str) -> None:
self.key = key.value
self.value = value
def __repr__(self) -> str:
return str(self.key) + ' = ' + str(self.value)
@classmethod
def get_entry_or_default(cls, key:Keys, default:str) -> str:
result = cls.query.filter_by(key=key.value).first()
if result is not None:
return result
result = Setting(key, default)
db.session.add (result)
db.session.commit( )
return result
@classmethod
def get_value(cls, key:Keys, default:str = "") -> str:
return cls.get_entry_or_default(key, default).value
@classmethod
def set_value(cls, key:Keys, value:str) -> None:
setting = cls.get_entry_or_default(key, value)
setting.value = value
db.session.commit( )