49 lines
1.6 KiB
Python
49 lines
1.6 KiB
Python
from app import db
|
|
|
|
class Trigger(db.Model):
|
|
|
|
# Table structure
|
|
__tablename__ = "triggers"
|
|
|
|
id = db.Column(db.Integer, primary_key=True, autoincrement=True)
|
|
callback_id = db.Column(db.String(32), db.ForeignKey('callbacks.uuid') )
|
|
schedule_id = db.Column(db.Integer, db.ForeignKey('schedules.id') )
|
|
trigger_time= db.Column(db.DateTime )
|
|
success = db.Column(db.Boolean )
|
|
|
|
callback = db.relationship("Callback")
|
|
schedule = db.relationship("Schedule")
|
|
|
|
def __init__(self, callback_id:str, schedule_id:int, trigger_time, success:bool) -> None:
|
|
self.callback_id = callback_id
|
|
self.schedule_id = schedule_id
|
|
self.trigger_time = trigger_time
|
|
self.success = success
|
|
|
|
def __repr__(self) -> str:
|
|
return str(self.callback_id) + " triggered at " + str(self.trigger_time)
|
|
|
|
@classmethod
|
|
def get_trigger(cls, id:int) -> any:
|
|
result = cls.query.filter_by(id=id).first()
|
|
if result is not None:
|
|
return result
|
|
|
|
raise KeyError("ID {} does not exist".format(id))
|
|
|
|
@classmethod
|
|
def get_triggers(cls, uuid:str) -> any:
|
|
result = cls.query.filter_by(callback_id=uuid)
|
|
if result is not None:
|
|
return result
|
|
|
|
raise KeyError("UUID {} does not exist".format(uuid))
|
|
|
|
def delete(self):
|
|
db.session.delete(self)
|
|
db.session.commit( );
|
|
|
|
def save(self):
|
|
db.session.add (self)
|
|
db.session.commit( )
|