doing a better job of creating and updating db records

database
Mark Cotton 2023-09-06 20:49:18 -05:00
parent baf32f857d
commit 0ec6698db7
1 changed files with 40 additions and 12 deletions

50
app.py
View File

@ -155,6 +155,8 @@ def index():
een.get_list_of_cameras() een.get_list_of_cameras()
een.get_list_of_accounts() een.get_list_of_accounts()
save_list_of_cameras(een=een)
if len(een.accounts) > 0 and een.active_account == None: if len(een.accounts) > 0 and een.active_account == None:
# they need to pick and account # they need to pick and account
@ -211,13 +213,21 @@ def login_callback():
try: try:
user = User.query.filter(User.email == een.current_user['email']).first() user = User.query.filter(User.email == een.current_user['email']).first()
if user is None: if user is None:
logging.debug(f"no user found with email {een.current_user['email']}, creating new user")
user = User(account_id=een.current_user['accountId'],\ user = User(account_id=een.current_user['accountId'],\
user_id=een.current_user['id'],\ user_id=een.current_user['id'],\
email=een.current_user['email'],\ email=een.current_user['email'],\
timezone=een.current_user['timeZone']['timeZone'],\ timezone=een.current_user['timeZone']['timeZone'],\
access_token=een.access_token,\ access_token=een.access_token,\
refresh_token=een.refresh_token,\ refresh_token=een.refresh_token,\
last_login=None) last_login=datetime.now())
else:
logging.debug(f"found user with {een.current_user['email']}, updating")
user.last_login = datetime.now()
user.access_token = een.access_token
user.refresh_token = een.refresh_token
logging.debug(f"saving user object")
user.save() user.save()
except Exception as e: except Exception as e:
logging.warn(e) logging.warn(e)
@ -240,6 +250,32 @@ def logout():
return redirect(url_for('index')) return redirect(url_for('index'))
def save_list_of_cameras(een=None):
user = User.query.filter(User.email == een.current_user['email']).first()
if user:
user_id = user.id
else:
user_id = None
for c in een.cameras:
try:
check_camera = Camera.query.filter(Camera.device_id == c.id).first()
if check_camera is None:
logging.debug(f"no camera found for {c.id}, creating new camera")
check_camera = Camera(device_id=c.id,\
timezone=None, \
name=c.name,
user_id=user_id)
else:
logging.debug(f"found camera for {c.id}")
logging.debug(f"saving camera object")
check_camera.save()
except Exception as e:
logging.warn(e)
@app.route('/cameras') @app.route('/cameras')
@login_required @login_required
def cameras(): def cameras():
@ -249,16 +285,8 @@ def cameras():
logging.debug(een.get_list_of_cameras()) logging.debug(een.get_list_of_cameras())
for c in een.cameras:
try: save_list_of_cameras(een=een)
check_camera = Camera.query.filter(Camera.device_id == c.id).first()
if check_camera is None:
new_camera = Camera(device_id=c.id,\
timezone=None, \
name=c.name)
new_camera.save()
except Exception as e:
logging.warn(e)
values = { values = {
"current_user": een.current_user, "current_user": een.current_user,