Files
notifications-api/app/dao/service_data_retention_dao.py

63 lines
1.9 KiB
Python
Raw Normal View History

from datetime import datetime
from app import db
from app.dao.dao_utils import autocommit
from app.models import ServiceDataRetention
def fetch_service_data_retention_by_id(service_id, data_retention_id):
2023-08-29 14:54:30 -07:00
data_retention = ServiceDataRetention.query.filter_by(
service_id=service_id, id=data_retention_id
).first()
return data_retention
def fetch_service_data_retention(service_id):
2023-08-29 14:54:30 -07:00
data_retention_list = (
ServiceDataRetention.query.filter_by(service_id=service_id)
.order_by(
# in the order that models.notification_types are created (email, sms, letter)
ServiceDataRetention.notification_type
)
.all()
)
return data_retention_list
def fetch_service_data_retention_by_notification_type(service_id, notification_type):
data_retention_list = ServiceDataRetention.query.filter_by(
2023-08-29 14:54:30 -07:00
service_id=service_id, notification_type=notification_type
).first()
return data_retention_list
@autocommit
def insert_service_data_retention(service_id, notification_type, days_of_retention):
2023-08-29 14:54:30 -07:00
new_data_retention = ServiceDataRetention(
service_id=service_id,
notification_type=notification_type,
days_of_retention=days_of_retention,
)
db.session.add(new_data_retention)
return new_data_retention
@autocommit
2023-08-29 14:54:30 -07:00
def update_service_data_retention(
service_data_retention_id, service_id, days_of_retention
):
updated_count = ServiceDataRetention.query.filter(
ServiceDataRetention.id == service_data_retention_id,
2023-08-29 14:54:30 -07:00
ServiceDataRetention.service_id == service_id,
).update({"days_of_retention": days_of_retention, "updated_at": datetime.utcnow()})
return updated_count
2023-08-29 14:54:30 -07:00
def fetch_service_data_retention_for_all_services_by_notification_type(
notification_type,
):
return ServiceDataRetention.query.filter(
ServiceDataRetention.notification_type == notification_type
).all()