Add NotificationSender, one test

This commit is contained in:
richard-dds
2019-05-10 16:01:25 -04:00
parent 802c62e3e9
commit a6c5f484b9
6 changed files with 99 additions and 0 deletions

View File

@@ -17,5 +17,6 @@ from .portfolio_invitation import PortfolioInvitation
from .application_invitation import ApplicationInvitation
from .task_order import TaskOrder
from .dd_254 import DD254
from .notification_recipient import NotificationRecipient
from .mixins.invites import Status as InvitationStatus

View File

@@ -0,0 +1,10 @@
from sqlalchemy import String, Column
from atst.models import Base, types, mixins
class NotificationRecipient(Base, mixins.TimestampsMixin):
__tablename__ = "notification_recipients"
id = types.Id()
email = Column(String, nullable=False)

View File

@@ -0,0 +1,20 @@
from atst.queue import ATSTQueue
from atst.database import db
from atst.models import NotificationRecipient
class NotificationSender(object):
EMAIL_SUBJECT = "ATST notification"
def __init__(self, queue: ATSTQueue):
self.queue = queue
def send(self, body, type_=None):
recipients = self._get_recipients(type_)
self.queue.send_mail(recipients, self.EMAIL_SUBJECT, body)
def _get_recipients(self, type_):
return [
recipient.email
for recipient in db.session.query(NotificationRecipient).all()
]