diff --git a/app/dao/notifications_dao.py b/app/dao/notifications_dao.py index 139f7ae8a..691b29065 100644 --- a/app/dao/notifications_dao.py +++ b/app/dao/notifications_dao.py @@ -1,5 +1,6 @@ import json -from datetime import timedelta +import os +from datetime import datetime, timedelta from time import time from flask import current_app @@ -29,6 +30,7 @@ from app.models import FactNotificationStatus, Notification, NotificationHistory from app.utils import ( escape_special_characters, get_midnight_in_utc, + hilite, midnight_n_days_ago, utc_now, ) @@ -95,6 +97,27 @@ def dao_create_notification(notification): # notify-api-1454 insert only if it doesn't exist if not dao_notification_exists(notification.id): db.session.add(notification) + # There have been issues with invites expiring. + # Ensure the created at value is set and debug. + if notification.notification_type == "email": + orig_time = notification.created_at + + now_time = utc_now() + print(hilite(f"original time: {orig_time} - {type(orig_time)} \n now time: {now_time} - {type(now_time)}")) + diff_time = now_time - datetime.strptime(orig_time, "%Y-%m-%D-%H-%M-%S") + current_app.logger.error( + f"dao_create_notification orig created at: {orig_time} and now created at: {now_time}" + ) + if diff_time.total_seconds() > 300: + current_app.logger.error( + "Something is wrong with notification.created_at in email!" + ) + if os.getenv("NOTIFY_ENVIRONMENT") not in ["test"]: + notification.created_at = now_time + dao_update_notification(notification) + current_app.logger.error( + f"Email notification created_at reset to {notification.created_at}" + ) def country_records_delivery(phone_prefix): diff --git a/app/service_invite/rest.py b/app/service_invite/rest.py index e375b93a5..e1f26236f 100644 --- a/app/service_invite/rest.py +++ b/app/service_invite/rest.py @@ -25,7 +25,7 @@ from app.notifications.process_notifications import ( send_notification_to_queue, ) from app.schemas import invited_user_schema -from app.utils import utc_now +from app.utils import hilite, utc_now from notifications_utils.url_safe_token import check_token, generate_token service_invite = Blueprint("service_invite", __name__) @@ -67,7 +67,7 @@ def _create_service_invite(invited_user, nonce, state): "service_name": invited_user.service.name, "url": url, } - + created_at = utc_now() saved_notification = persist_notification( template_id=template.id, template_version=template.version, @@ -78,6 +78,10 @@ def _create_service_invite(invited_user, nonce, state): api_key_id=None, key_type=KeyType.NORMAL, reply_to_text=invited_user.from_user.email_address, + created_at=created_at, + ) + print( + hilite(f"saved notification created at time: {saved_notification.created_at}") ) saved_notification.personalisation = personalisation redis_store.set(