Add an endpoint to return returned letter stats

Currently the dashboard in the admin app pull the entire returned letter
summary for a service to calculate how many letters have been returned
in the last seven days.

Adding a separate endpoint for this purpose is better because:
- it’s a more efficient query
- it’s less data to send down the pipe
- it gives us a place to return the complete datetime, so the dashboard
  can be more precise about when the most recent report was
This commit is contained in:
Chris Hill-Scott
2020-03-03 17:12:45 +00:00
parent 223ec1360c
commit 9c03438a53
4 changed files with 121 additions and 2 deletions

View File

@@ -3382,6 +3382,20 @@ def test_get_monthly_notification_data_by_service(mocker, admin_request):
assert response == []
@freeze_time('2019-12-11 13:30')
def test_get_returned_letter_statistics(admin_request, sample_service):
create_returned_letter(sample_service, reported_at=datetime.utcnow() - timedelta(days=3))
create_returned_letter(sample_service, reported_at=datetime.utcnow() - timedelta(days=2))
create_returned_letter(sample_service, reported_at=datetime.utcnow() - timedelta(days=1))
response = admin_request.get('service.returned_letter_statistics', service_id=sample_service.id)
assert response == {
'returned_letter_count': 3,
'most_recent_report': '2019-12-10 00:00:00.000000'
}
@freeze_time('2019-12-11 13:30')
def test_get_returned_letter_summary(admin_request, sample_service):
create_returned_letter(sample_service, reported_at=datetime.utcnow() - timedelta(days=3))