Cic notify build

This commit is contained in:
2021-02-07 02:29:24 +00:00
parent 85f06aa445
commit cebdb24ed6
61 changed files with 1650 additions and 27 deletions

View File

@@ -0,0 +1,40 @@
# third-party imports
from sqlalchemy import Column, Integer
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker
Model = declarative_base(name='Model')
class SessionBase(Model):
__abstract__ = True
id = Column(Integer, primary_key=True)
engine = None
session = None
query = None
@staticmethod
def create_session():
session = sessionmaker(bind=SessionBase.engine)
SessionBase.session = session()
return SessionBase.session
@staticmethod
def _set_engine(engine):
SessionBase.engine = engine
@staticmethod
def build():
Model.metadata.create_all(bind=SessionBase.engine)
@staticmethod
def connect(dsn):
e = create_engine(dsn)
SessionBase._set_engine(e)

View File

@@ -0,0 +1,27 @@
# standard imports
import datetime
# third-party imports
from sqlalchemy import Enum, Column, String, DateTime
# local imports
from .base import SessionBase
from ..enum import NotificationStatusEnum, NotificationTransportEnum
class Notification(SessionBase):
__tablename__ = 'notification'
transport = Column(Enum(NotificationTransportEnum))
status = Column(Enum(NotificationStatusEnum))
recipient = Column(String)
message = Column(String)
created = Column(DateTime, default=datetime.datetime.utcnow)
updated = Column(DateTime, default=datetime.datetime.utcnow)
def __init__(self, transport, recipient, message, **kwargs):
super(Notification, self).__init__(**kwargs)
self.transport = transport
self.recipient = recipient
self.message = message
self.status = NotificationStatusEnum.UNKNOWN