attempt plugin category

This commit is contained in:
deathbybandaid 2019-05-30 08:12:51 -04:00
parent 5e9101242b
commit dfdc2dcde5

View File

@ -27,6 +27,7 @@ class PluginValues(BASE):
"""
__tablename__ = 'plugin_values'
plugin = Column(String(255), primary_key=True)
category = Column(String(255), primary_key=True)
key = Column(String(255), primary_key=True)
value = Column(String(255))
@ -216,7 +217,7 @@ class SpiceDB(object):
# PLUGIN FUNCTIONS
def set_plugin_value(self, plugin, key, value):
def set_plugin_value(self, plugin, key, value, category='default'):
"""Sets the value for a given key to be associated with the plugin."""
plugin = Identifier(plugin).lower()
value = json.dumps(value, ensure_ascii=False)
@ -224,6 +225,7 @@ class SpiceDB(object):
try:
result = session.query(PluginValues) \
.filter(PluginValues.plugin == plugin)\
.filter(PluginValues.category == category)\
.filter(PluginValues.key == key) \
.one_or_none()
# PluginValues exists, update
@ -232,7 +234,7 @@ class SpiceDB(object):
session.commit()
# DNE - Insert
else:
new_pluginvalue = PluginValues(plugin=plugin, key=key, value=value)
new_pluginvalue = PluginValues(plugin=plugin, category=category, key=key, value=value)
session.add(new_pluginvalue)
session.commit()
except SQLAlchemyError:
@ -241,13 +243,14 @@ class SpiceDB(object):
finally:
session.close()
def get_plugin_value(self, plugin, key):
def get_plugin_value(self, plugin, key, category='default'):
"""Retrieves the value for a given key associated with a plugin."""
plugin = Identifier(plugin).lower()
session = self.ssession()
try:
result = session.query(PluginValues) \
.filter(PluginValues.plugin == plugin)\
.filter(PluginValues.category == category)\
.filter(PluginValues.key == key) \
.one_or_none()
if result is not None:
@ -259,13 +262,14 @@ class SpiceDB(object):
finally:
session.close()
def delete_plugin_value(self, plugin, key):
def delete_plugin_value(self, plugin, key, category='default'):
"""Deletes the value for a given key to be associated with the plugin."""
plugin = Identifier(plugin).lower()
session = self.ssession()
try:
result = session.query(PluginValues) \
.filter(PluginValues.plugin == plugin)\
.filter(PluginValues.category == category)\
.filter(PluginValues.key == key) \
.one_or_none()
# PluginValues exists, delete
@ -278,7 +282,7 @@ class SpiceDB(object):
finally:
session.close()
def adjust_plugin_value(self, plugin, key, value):
def adjust_plugin_value(self, plugin, key, value, category='default'):
"""Sets the value for a given key to be associated with the plugin."""
plugin = Identifier(plugin).lower()
value = json.dumps(value, ensure_ascii=False)
@ -286,6 +290,7 @@ class SpiceDB(object):
try:
result = session.query(PluginValues) \
.filter(PluginValues.plugin == plugin)\
.filter(PluginValues.category == category)\
.filter(PluginValues.key == key) \
.one_or_none()
# ChannelValue exists, update
@ -294,7 +299,7 @@ class SpiceDB(object):
session.commit()
# DNE - Insert
else:
new_pluginvalue = PluginValues(plugin=plugin, key=key, value=float(value))
new_pluginvalue = PluginValues(plugin=plugin, category=category, key=key, value=float(value))
session.add(new_pluginvalue)
session.commit()
except SQLAlchemyError:
@ -303,7 +308,7 @@ class SpiceDB(object):
finally:
session.close()
def adjust_plugin_list(self, plugin, key, entries, adjustmentdirection):
def adjust_plugin_list(self, plugin, key, entries, adjustmentdirection, category='default'):
"""Sets the value for a given key to be associated with the plugin."""
plugin = Identifier(plugin).lower()
if not isinstance(entries, list):
@ -313,6 +318,7 @@ class SpiceDB(object):
try:
result = session.query(PluginValues) \
.filter(PluginValues.plugin == plugin)\
.filter(PluginValues.category == category)\
.filter(PluginValues.key == key) \
.one_or_none()
# ChannelValue exists, update
@ -337,7 +343,7 @@ class SpiceDB(object):
for entry in entries:
while entry in values:
values.remove(entry)
new_pluginvalue = PluginValues(plugin=plugin, key=key, value=values)
new_pluginvalue = PluginValues(plugin=plugin, category=category, key=key, value=values)
session.add(new_pluginvalue)
session.commit()
except SQLAlchemyError: