add: webhook

This commit is contained in:
h z
2025-03-17 13:54:53 +00:00
parent acb1e2260f
commit 864b78641b
23 changed files with 473 additions and 43 deletions

View File

@@ -9,7 +9,7 @@ class Markdown(Base):
id = Column(Integer, primary_key=True)
title = Column(String(255), nullable=False)
content = Column(Text, nullable=False)
created_at = Column(DateTime, default=datetime.datetime.utcnow)
created_at = Column(DateTime, default=datetime.datetime.now(datetime.UTC))
path_id = Column(Integer, ForeignKey('path.id'), nullable=False)
order = Column(String(36), default=lambda: str(uuid.uuid4()))
shortcut = Column(String(36), default="")
@@ -23,7 +23,7 @@ class Markdown(Base):
'order': self.order,
'shortcut': self.shortcut,
}
__pay_load__ = {
__payload__ = {
'dev': [
{'id': 1, 'title': 'index', 'content': ' ', 'created_at': datetime.datetime.utcnow, 'path_id': 1 },
],

View File

@@ -19,7 +19,7 @@ class Path(Base):
"order": self.order,
}
__pay_load__ = {
__payload__ = {
'dev': [
{'id': 1, 'name': '', 'parent_id': None},
{'id': 2, 'name': 'test', 'parent_id': 1},

16
db/models/Webhook.py Normal file
View File

@@ -0,0 +1,16 @@
from sqlalchemy import Column, String, Integer, ForeignKey, UniqueConstraint, text, Boolean
from db.models import Base
class Webhook(Base):
__tablename__ = 'webhook'
id = Column(Integer, primary_key=True, autoincrement=True)
hook_url = Column(String(100), nullable=False)
__table_args__ = (UniqueConstraint('hook_url'),)
def to_dict(self):
return {
"id": self.id,
"hook_url": self.hook_url
}

View File

@@ -0,0 +1,26 @@
from sqlalchemy import Column, String, Integer, ForeignKey, UniqueConstraint, Boolean
from db.models import Base
class WebhookSetting(Base):
__tablename__ = 'webhook_setting'
id = Column(Integer, primary_key=True, autoincrement=True)
path_id = Column(Integer, ForeignKey('path.id'), nullable=False)
webhook_id = Column(Integer, ForeignKey('webhook.id'), nullable=False)
recursive = Column(Boolean, default=False)
additional_header = Column(String(500), nullable=True)
enabled = Column(Boolean, default=True)
on_events = Column(Integer, default=0)
__table_args__ = (UniqueConstraint('webhook_id', 'path_id', name='_webhook_path_uc'),)
def to_dict(self):
return {
"id": self.id,
"path_id": self.path_id,
"webhook_id": self.webhook_id,
"recursive": self.recursive,
"additional_header": self.additional_header,
"enabled": self.enabled,
"on_events": self.on_events,
}

View File

@@ -1,8 +1,6 @@
#db/models/__init__.py
import pkgutil
import importlib
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import declarative_base
Base = declarative_base()
package_name = "db.models"