mirror of
https://github.com/GSA/notifications-api.git
synced 2025-12-24 01:11:38 -05:00
Added a new endpoint to return the last used date for a template.
The existing endpoint returned a whole notification for the last time the template was used. But this only takes into account data in the last week. This new methods allows us to be specific about when the template was last used if ever but looking into the ft_notification_status table as well.
This commit is contained in:
@@ -30,6 +30,7 @@ from app.dao.dao_utils import transactional
|
||||
from app.errors import InvalidRequest
|
||||
from app.letters.utils import get_letter_pdf_filename
|
||||
from app.models import (
|
||||
FactNotificationStatus,
|
||||
Notification,
|
||||
NotificationHistory,
|
||||
ProviderDetails,
|
||||
@@ -70,6 +71,37 @@ def dao_get_last_template_usage(template_id, template_type, service_id):
|
||||
).first()
|
||||
|
||||
|
||||
@statsd(namespace="dao")
|
||||
def dao_get_last_date_template_was_used(template_id, template_type, service_id):
|
||||
last_date = db.session.query(
|
||||
functions.max(FactNotificationStatus.bst_date)
|
||||
).filter(
|
||||
FactNotificationStatus.template_id == template_id,
|
||||
FactNotificationStatus.key_type != KEY_TYPE_TEST
|
||||
).scalar()
|
||||
|
||||
last_date_from_notifications = db.session.query(
|
||||
functions.max(Notification.created_at)
|
||||
).filter(
|
||||
Notification.service_id == service_id,
|
||||
Notification.notification_type == template_type,
|
||||
Notification.template_id == template_id,
|
||||
Notification.key_type != KEY_TYPE_TEST
|
||||
).scalar()
|
||||
|
||||
if last_date and last_date_from_notifications:
|
||||
if datetime.combine(last_date, datetime.utcnow().min.time()) >= last_date_from_notifications:
|
||||
return last_date
|
||||
else:
|
||||
return last_date_from_notifications
|
||||
elif not last_date:
|
||||
return last_date_from_notifications
|
||||
elif not last_date_from_notifications:
|
||||
return last_date
|
||||
else:
|
||||
return None
|
||||
|
||||
|
||||
@statsd(namespace="dao")
|
||||
@transactional
|
||||
def dao_create_notification(notification):
|
||||
|
||||
Reference in New Issue
Block a user