52 lines
1.7 KiB
Python
52 lines
1.7 KiB
Python
import uuid
|
|
from app import db
|
|
|
|
def generate_uuid():
|
|
return str(uuid.uuid4())
|
|
|
|
class Callback(db.Model):
|
|
|
|
# Table structure
|
|
__tablename__ = "callbacks"
|
|
|
|
uuid = db.Column(db.String(32), primary_key=True, default=generate_uuid)
|
|
name = db.Column(db.String(64) )
|
|
domain = db.Column(db.String(256) )
|
|
service = db.Column(db.String(256) )
|
|
entity = db.Column(db.String(256) )
|
|
data = db.Column(db.Text )
|
|
note = db.Column(db.Text )
|
|
active = db.Column(db.Boolean )
|
|
|
|
def __init__(self, name:str, domain:str, service:str, entity:str) -> None:
|
|
self.name = name
|
|
self.domain = domain
|
|
self.service = service
|
|
self.entity = entity
|
|
self.text = ""
|
|
self.note = ""
|
|
self.active = True
|
|
|
|
def __repr__(self) -> str:
|
|
return str(self.name) + ': ' + str(self.domain) + '/' + str(self.service)
|
|
|
|
@classmethod
|
|
def get_callback(cls, uuid:str) -> str:
|
|
result = cls.query.filter_by(uuid=uuid).first()
|
|
if result is not None:
|
|
return result
|
|
|
|
raise KeyError("UUID {} does not exist".format(uuid))
|
|
|
|
@classmethod
|
|
def get_callbacks(cls) -> str:
|
|
result = cls.query.filter_by(active=True).all()
|
|
if result is not None:
|
|
return result
|
|
|
|
return []
|
|
|
|
def save(self):
|
|
db.session.add (self)
|
|
db.session.commit( )
|