mirror of
https://github.com/GSA/notifications-api.git
synced 2026-02-02 09:26:08 -05:00
Merge pull request #288 from alphagov/purge_functional_test_data
Purge functional tests command added with passing test.
This commit is contained in:
@@ -200,11 +200,10 @@ def get_notifications_for_job(service_id, job_id, filter_dict=None, page=1, page
|
||||
page_size = current_app.config['PAGE_SIZE']
|
||||
query = Notification.query.filter_by(service_id=service_id, job_id=job_id)
|
||||
query = filter_query(query, filter_dict)
|
||||
pagination = query.order_by(desc(Notification.created_at)).paginate(
|
||||
return query.order_by(desc(Notification.created_at)).paginate(
|
||||
page=page,
|
||||
per_page=page_size
|
||||
)
|
||||
return pagination
|
||||
|
||||
|
||||
def get_notification(service_id, notification_id):
|
||||
@@ -215,7 +214,11 @@ def get_notification_by_id(notification_id):
|
||||
return Notification.query.filter_by(id=notification_id).first()
|
||||
|
||||
|
||||
def get_notifications_for_service(service_id, filter_dict=None, page=1, page_size=None, limit_days=None):
|
||||
def get_notifications_for_service(service_id,
|
||||
filter_dict=None,
|
||||
page=1,
|
||||
page_size=None,
|
||||
limit_days=None):
|
||||
if page_size is None:
|
||||
page_size = current_app.config['PAGE_SIZE']
|
||||
filters = [Notification.service_id == service_id]
|
||||
@@ -226,11 +229,10 @@ def get_notifications_for_service(service_id, filter_dict=None, page=1, page_siz
|
||||
|
||||
query = Notification.query.filter(*filters)
|
||||
query = filter_query(query, filter_dict)
|
||||
pagination = query.order_by(desc(Notification.created_at)).paginate(
|
||||
return query.order_by(desc(Notification.created_at)).paginate(
|
||||
page=page,
|
||||
per_page=page_size
|
||||
)
|
||||
return pagination
|
||||
|
||||
|
||||
def filter_query(query, filter_dict=None):
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
from sqlalchemy import func
|
||||
from app import db
|
||||
from app.models import (ProviderStatistics, SMS_PROVIDERS, EMAIL_PROVIDERS)
|
||||
|
||||
|
||||
|
||||
@@ -9,6 +9,21 @@ from app.dao.dao_utils import (
|
||||
version_class
|
||||
)
|
||||
|
||||
from app.models import (
|
||||
NotificationStatistics,
|
||||
TemplateStatistics,
|
||||
ProviderStatistics,
|
||||
VerifyCode,
|
||||
ApiKey,
|
||||
Template,
|
||||
Job,
|
||||
Notification,
|
||||
Permission,
|
||||
User,
|
||||
InvitedUser,
|
||||
Service
|
||||
)
|
||||
|
||||
|
||||
def dao_fetch_all_services():
|
||||
return Service.query.order_by(asc(Service.created_at)).all()
|
||||
@@ -66,3 +81,31 @@ def dao_remove_user_from_service(service, user):
|
||||
raise e
|
||||
else:
|
||||
db.session.commit()
|
||||
|
||||
|
||||
def delete_service_and_all_associated_db_objects(service):
|
||||
|
||||
def _delete_commit(query):
|
||||
query.delete()
|
||||
db.session.commit()
|
||||
|
||||
_delete_commit(NotificationStatistics.query.filter_by(service=service))
|
||||
_delete_commit(TemplateStatistics.query.filter_by(service=service))
|
||||
_delete_commit(ProviderStatistics.query.filter_by(service=service))
|
||||
_delete_commit(InvitedUser.query.filter_by(service=service))
|
||||
_delete_commit(Permission.query.filter_by(service=service))
|
||||
_delete_commit(ApiKey.query.filter_by(service=service))
|
||||
_delete_commit(Notification.query.filter_by(service=service))
|
||||
_delete_commit(Job.query.filter_by(service=service))
|
||||
_delete_commit(Template.query.filter_by(service=service))
|
||||
|
||||
verify_codes = VerifyCode.query.join(User).filter(User.id.in_([x.id for x in service.users]))
|
||||
list(map(db.session.delete, verify_codes))
|
||||
db.session.commit()
|
||||
users = [x for x in service.users]
|
||||
map(service.users.remove, users)
|
||||
[service.users.remove(x) for x in users]
|
||||
db.session.delete(service)
|
||||
db.session.commit()
|
||||
list(map(db.session.delete, users))
|
||||
db.session.commit()
|
||||
|
||||
@@ -67,6 +67,11 @@ def delete_model_user(user):
|
||||
db.session.commit()
|
||||
|
||||
|
||||
def delete_user_verify_codes(user):
|
||||
VerifyCode.query.filter_by(user=user).delete()
|
||||
db.session.commit()
|
||||
|
||||
|
||||
def get_model_users(user_id=None):
|
||||
if user_id:
|
||||
return User.query.filter_by(id=user_id).one()
|
||||
|
||||
Reference in New Issue
Block a user