Added settings for alert email address and phone number. Also added APScheduler to check if notifications should get sent out. Started working on notification logic.
This commit is contained in:
35
app.py
35
app.py
@@ -3,10 +3,20 @@ import datetime
|
|||||||
from sqlalchemy import create_engine, Column, Integer, String, Date
|
from sqlalchemy import create_engine, Column, Integer, String, Date
|
||||||
from sqlalchemy.ext.declarative import declarative_base
|
from sqlalchemy.ext.declarative import declarative_base
|
||||||
from sqlalchemy.orm import sessionmaker
|
from sqlalchemy.orm import sessionmaker
|
||||||
import pymysql
|
from flask_apscheduler import APScheduler
|
||||||
|
|
||||||
|
|
||||||
|
class Config:
|
||||||
|
SCHEDULER_API_ENABLED = True
|
||||||
|
|
||||||
|
|
||||||
app = Flask(__name__)
|
app = Flask(__name__)
|
||||||
app.config['SECRET_KEY'] = 'fa6166b0218186fb852429060105aca18e0f979240be8ebf'
|
app.config['SECRET_KEY'] = 'fa6166b0218186fb852429060105aca18e0f979240be8ebf'
|
||||||
|
app.config.from_object(Config())
|
||||||
|
|
||||||
|
scheduler = APScheduler()
|
||||||
|
scheduler.init_app(app)
|
||||||
|
|
||||||
|
|
||||||
Base = declarative_base()
|
Base = declarative_base()
|
||||||
|
|
||||||
@@ -48,6 +58,24 @@ SettingsMetadata.__table__.create(bind=engine, checkfirst=True)
|
|||||||
Session = sessionmaker(bind=engine)
|
Session = sessionmaker(bind=engine)
|
||||||
|
|
||||||
|
|
||||||
|
@scheduler.task('cron', id='send_notifications', minute='*')
|
||||||
|
def notifications():
|
||||||
|
session = Session()
|
||||||
|
|
||||||
|
notifications = {'text': '', 'email': ''}
|
||||||
|
notifications['text'] = session.query(Settings).filter_by(settingType=1).first().settingValue
|
||||||
|
notifications['email'] = session.query(Settings).filter_by(settingType=2).first().settingValue
|
||||||
|
|
||||||
|
if notifications['text']:
|
||||||
|
print('will send text')
|
||||||
|
if notifications['email']:
|
||||||
|
print('will send email')
|
||||||
|
print('checked')
|
||||||
|
|
||||||
|
|
||||||
|
scheduler.start()
|
||||||
|
|
||||||
|
|
||||||
@app.route('/', methods=('GET', 'POST'))
|
@app.route('/', methods=('GET', 'POST'))
|
||||||
@app.route('/index.html', methods=('GET', 'POST'))
|
@app.route('/index.html', methods=('GET', 'POST'))
|
||||||
def index():
|
def index():
|
||||||
@@ -142,11 +170,16 @@ def install():
|
|||||||
session.add(Settings(settingType=1, settingValue='False'))
|
session.add(Settings(settingType=1, settingValue='False'))
|
||||||
session.add(Settings(settingType=2, settingValue='False'))
|
session.add(Settings(settingType=2, settingValue='False'))
|
||||||
session.add(Settings(settingType=3, settingValue='14'))
|
session.add(Settings(settingType=3, settingValue='14'))
|
||||||
|
session.add(Settings(settingType=4, settingValue=None))
|
||||||
|
session.add(Settings(settingType=5, settingValue=None))
|
||||||
|
|
||||||
|
|
||||||
# Populate SettingsMetadata
|
# Populate SettingsMetadata
|
||||||
session.add(SettingsMetadata(settingTypeID=1, settingTypeName='Text'))
|
session.add(SettingsMetadata(settingTypeID=1, settingTypeName='Text'))
|
||||||
session.add(SettingsMetadata(settingTypeID=2, settingTypeName='Email'))
|
session.add(SettingsMetadata(settingTypeID=2, settingTypeName='Email'))
|
||||||
session.add(SettingsMetadata(settingTypeID=3, settingTypeName='Feeding Frequency'))
|
session.add(SettingsMetadata(settingTypeID=3, settingTypeName='Feeding Frequency'))
|
||||||
|
session.add(SettingsMetadata(settingTypeID=4, settingTypeName='Alert Phone Number'))
|
||||||
|
session.add(SettingsMetadata(settingTypeID=5, settingTypeName='Alert Email'))
|
||||||
|
|
||||||
session.commit()
|
session.commit()
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user