This commit is contained in:
Rebecca Law
2019-12-11 15:24:31 +00:00
parent 22851c4ef0
commit 5482c03bca
4 changed files with 40 additions and 2 deletions

View File

@@ -54,3 +54,16 @@ def get_returned_letter_summary(service_id):
).order_by(
desc(ReturnedLetter.reported_at)
).all()
def fetch_returned_letters(service_id, report_date):
return db.session.query(
ReturnedLetter.notification_id,
ReturnedLetter.reported_at
).filter(
ReturnedLetter.service_id == service_id,
func.date(ReturnedLetter.reported_at) == report_date
).order_by(
desc(ReturnedLetter.reported_at)
).all()

View File

@@ -952,3 +952,12 @@ def returned_letter_summary(service_id):
} for x in results]
return jsonify(json_results)
@service_blueprint.route('/<uuid:service_id>/returned-letters', methods=['GET'])
def get_returned_letters(service_id):
results = get_returned_letter_summary(service_id)
json_results = [{'returned_letter_count': x.returned_letter_count, 'reported_at': x.reported_at} for x in results]
return jsonify(json_results)

View File

@@ -2,7 +2,10 @@ from datetime import datetime, timedelta, date
from freezegun import freeze_time
from app.dao.returned_letters_dao import insert_or_update_returned_letters, get_returned_letter_summary
from app.dao.returned_letters_dao import (
insert_or_update_returned_letters, get_returned_letter_summary,
fetch_returned_letters
)
from app.models import ReturnedLetter
from tests.app.db import create_notification, create_notification_history, create_returned_letter
@@ -116,3 +119,16 @@ def test_get_returned_letter_summary_orders_by_reported_at(sample_service):
assert results[0].returned_letter_count == 3
assert results[1].reported_at == last_month.date()
assert results[1].returned_letter_count == 2
def test_fetch_returned_letters(sample_service):
today = datetime.now()
last_month = datetime.now() - timedelta(days=30)
create_returned_letter(service=sample_service, reported_at=today)
create_returned_letter(service=sample_service, reported_at=today)
create_returned_letter(service=sample_service, reported_at=last_month)
results = fetch_returned_letters(service_id=sample_service.id, report_date=today.date())
assert len(results) == 2

View File

@@ -685,7 +685,7 @@ def create_ft_billing(bst_date,
rate=0,
billable_unit=1,
notifications_sent=1,
postage='none',
postage='none'
):
data = FactBilling(bst_date=bst_date,
service_id=template.service_id,