Skip to content

Commit

Permalink
Revert "Task: Filter Heartbeats (#2108)"
Browse files Browse the repository at this point in the history
This reverts commit 5bcdb72.
  • Loading branch information
whabanks authored Feb 21, 2024
1 parent 5bcdb72 commit 7fc5c56
Show file tree
Hide file tree
Showing 6 changed files with 10 additions and 108 deletions.
15 changes: 3 additions & 12 deletions app/dao/fact_notification_status_dao.py
Original file line number Diff line number Diff line change
Expand Up @@ -149,8 +149,8 @@ def fetch_notification_status_for_service_by_month(start_date, end_date, service
)


def fetch_delivered_notification_stats_by_month(filter_heartbeats=None):
query = (
def fetch_delivered_notification_stats_by_month():
return (
db.session.query(
func.date_trunc("month", FactNotificationStatus.bst_date).cast(db.Text).label("month"),
FactNotificationStatus.notification_type,
Expand All @@ -169,17 +169,8 @@ def fetch_delivered_notification_stats_by_month(filter_heartbeats=None):
func.date_trunc("month", FactNotificationStatus.bst_date).desc(),
FactNotificationStatus.notification_type,
)
.all()
)
if filter_heartbeats:
query = query.filter(
FactNotificationStatus.template_id != current_app.config["HEARTBEAT_TEMPLATE_EMAIL_LOW"],
FactNotificationStatus.template_id != current_app.config["HEARTBEAT_TEMPLATE_EMAIL_MEDIUM"],
FactNotificationStatus.template_id != current_app.config["HEARTBEAT_TEMPLATE_EMAIL_HIGH"],
FactNotificationStatus.template_id != current_app.config["HEARTBEAT_TEMPLATE_SMS_LOW"],
FactNotificationStatus.template_id != current_app.config["HEARTBEAT_TEMPLATE_SMS_MEDIUM"],
FactNotificationStatus.template_id != current_app.config["HEARTBEAT_TEMPLATE_SMS_HIGH"],
)
return query.all()


def fetch_notification_stats_for_trial_services():
Expand Down
13 changes: 2 additions & 11 deletions app/dao/services_dao.py
Original file line number Diff line number Diff line change
Expand Up @@ -83,7 +83,7 @@ def dao_count_live_services():
).count()


def dao_fetch_live_services_data(filter_heartbeats=None):
def dao_fetch_live_services_data():
year_start_date, year_end_date = get_current_financial_year()

most_recent_annual_billing = (
Expand Down Expand Up @@ -175,17 +175,8 @@ def dao_fetch_live_services_data(filter_heartbeats=None):
AnnualBilling.free_sms_fragment_limit,
)
.order_by(asc(Service.go_live_at))
.all()
)
if filter_heartbeats:
data = data.join(Template, Service.id == Template.service_id).filter(
Template.id != current_app.config["HEARTBEAT_TEMPLATE_EMAIL_LOW"],
Template.id != current_app.config["HEARTBEAT_TEMPLATE_EMAIL_MEDIUM"],
Template.id != current_app.config["HEARTBEAT_TEMPLATE_EMAIL_HIGH"],
Template.id != current_app.config["HEARTBEAT_TEMPLATE_SMS_LOW"],
Template.id != current_app.config["HEARTBEAT_TEMPLATE_SMS_MEDIUM"],
Template.id != current_app.config["HEARTBEAT_TEMPLATE_SMS_HIGH"],
)
data = data.all()
results = []
for row in data:
existing_service = next((x for x in results if x["service_id"] == row.service_id), None)
Expand Down
6 changes: 2 additions & 4 deletions app/service/rest.py
Original file line number Diff line number Diff line change
Expand Up @@ -209,15 +209,13 @@ def find_services_by_name():

@service_blueprint.route("/live-services-data", methods=["GET"])
def get_live_services_data():
filter_heartbeats = request.args.get("filter_heartbeats", None) == "True"
data = dao_fetch_live_services_data(filter_heartbeats=filter_heartbeats)
data = dao_fetch_live_services_data()
return jsonify(data=data)


@service_blueprint.route("/delivered-notifications-stats-by-month-data", methods=["GET"])
def get_delivered_notification_stats_by_month_data():
filter_heartbeats = request.args.get("filter_heartbeats", None) == "True"
return jsonify(data=fetch_delivered_notification_stats_by_month(filter_heartbeats=filter_heartbeats))
return jsonify(data=fetch_delivered_notification_stats_by_month())


@service_blueprint.route("/<uuid:service_id>", methods=["GET"])
Expand Down
57 changes: 0 additions & 57 deletions tests/app/dao/test_fact_notification_status_dao.py
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,6 @@
create_template,
save_notification,
)
from tests.conftest import set_config


def test_update_fact_notification_status(notify_db_session):
Expand Down Expand Up @@ -729,62 +728,6 @@ def test_fetch_delivered_notification_stats_by_month(sample_service):
assert results[3].count == 6


@freeze_time("2020-11-02 14:00")
def test_fetch_delivered_notification_stats_by_month_filter_heartbeats(notify_api, sample_service):
sms_template = create_template(service=sample_service, template_type="sms", template_name="a")
email_template = create_template(service=sample_service, template_type="email", template_name="b")

# Not counted: before GC Notify started
create_ft_notification_status(
utc_date=date(2019, 10, 10),
service=sample_service,
template=email_template,
count=3,
)

create_ft_notification_status(
utc_date=date(2019, 12, 10),
service=sample_service,
template=email_template,
count=3,
)

create_ft_notification_status(
utc_date=date(2019, 12, 5),
service=sample_service,
template=sms_template,
notification_status=NOTIFICATION_DELIVERED,
count=6,
)

create_ft_notification_status(
utc_date=date(2020, 1, 1),
service=sample_service,
template=sms_template,
notification_status=NOTIFICATION_SENT,
count=4,
)

# Not counted: failed notifications
create_ft_notification_status(
utc_date=date(2020, 1, 1),
service=sample_service,
template=sms_template,
notification_status=NOTIFICATION_FAILED,
count=10,
)

create_ft_notification_status(
utc_date=date(2020, 3, 1),
service=sample_service,
template=email_template,
count=5,
)
with set_config(notify_api, "HEARTBEAT_TEMPLATE_EMAIL_LOW", email_template.id):
results = fetch_delivered_notification_stats_by_month(filter_heartbeats=True)
assert len(results) == 2


def test_fetch_delivered_notification_stats_by_month_empty():
assert fetch_delivered_notification_stats_by_month() == []

Expand Down
12 changes: 3 additions & 9 deletions tests/app/dao/test_services_dao.py
Original file line number Diff line number Diff line change
Expand Up @@ -87,7 +87,6 @@
create_user,
save_notification,
)
from tests.conftest import set_config

# from unittest import mock

Expand Down Expand Up @@ -494,8 +493,7 @@ def test_get_all_user_services_should_return_empty_list_if_no_services_for_user(


@freeze_time("2019-04-23T10:00:00")
@pytest.mark.parametrize("filter_heartbeats", [True, False])
def test_dao_fetch_live_services_data_filter_heartbeats(notify_api, sample_user, filter_heartbeats):
def test_dao_fetch_live_services_data(sample_user):
org = create_organisation(organisation_type="nhs_central")
service = create_service(go_live_user=sample_user, go_live_at="2014-04-20T10:00:00")
template = create_template(service=service)
Expand Down Expand Up @@ -563,12 +561,8 @@ def test_dao_fetch_live_services_data_filter_heartbeats(notify_api, sample_user,
# 3rd service: billing from 2019
create_annual_billing(service_3.id, 200, 2019)

with set_config(notify_api, "HEARTBEAT_TEMPLATE_EMAIL_LOW", template.id):
results = dao_fetch_live_services_data(filter_heartbeats=filter_heartbeats)
if not filter_heartbeats:
assert len(results) == 3
else:
assert len(results) == 2
results = dao_fetch_live_services_data()
assert len(results) == 3
# checks the results and that they are ordered by date:
# @todo: this test is temporarily forced to pass until we can add the fiscal year back into
# the query and create a new endpoint for the homepage stats
Expand Down
15 changes: 0 additions & 15 deletions tests/app/service/test_rest.py
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,6 @@
create_user,
save_notification,
)
from tests.conftest import set_config


def test_get_service_list(client, service_factory):
Expand Down Expand Up @@ -254,20 +253,6 @@ def test_get_delivered_notification_stats_by_month_data(admin_request, sample_se
assert first["count"] == 3


def test_get_delivered_notification_stats_by_month_data_without_heartbeat(notify_api, admin_request, sample_service):
email_template = create_template(service=sample_service, template_type="email", template_name="b")

create_ft_notification_status(
utc_date=date(2019, 12, 10),
service=sample_service,
template=email_template,
count=3,
)
with set_config(notify_api, "HEARTBEAT_TEMPLATE_EMAIL_LOW", email_template.id):
response = admin_request.get("service.get_delivered_notification_stats_by_month_data", filter_heartbeats=True)["data"]
assert len(response) == 0


def test_get_service_by_id(admin_request, sample_service):
json_resp = admin_request.get("service.get_service_by_id", service_id=sample_service.id)
assert json_resp["data"]["name"] == sample_service.name
Expand Down

0 comments on commit 7fc5c56

Please sign in to comment.