mirror of
https://github.com/GSA/notifications-api.git
synced 2026-08-25 00:33:41 -04:00
[WIP]
This commit is contained in:
@@ -54,3 +54,16 @@ def get_returned_letter_summary(service_id):
|
|||||||
).order_by(
|
).order_by(
|
||||||
desc(ReturnedLetter.reported_at)
|
desc(ReturnedLetter.reported_at)
|
||||||
).all()
|
).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()
|
||||||
|
|||||||
@@ -952,3 +952,12 @@ def returned_letter_summary(service_id):
|
|||||||
} for x in results]
|
} for x in results]
|
||||||
|
|
||||||
return jsonify(json_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)
|
||||||
|
|||||||
@@ -2,7 +2,10 @@ from datetime import datetime, timedelta, date
|
|||||||
|
|
||||||
from freezegun import freeze_time
|
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 app.models import ReturnedLetter
|
||||||
from tests.app.db import create_notification, create_notification_history, create_returned_letter
|
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[0].returned_letter_count == 3
|
||||||
assert results[1].reported_at == last_month.date()
|
assert results[1].reported_at == last_month.date()
|
||||||
assert results[1].returned_letter_count == 2
|
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
|
||||||
|
|||||||
@@ -685,7 +685,7 @@ def create_ft_billing(bst_date,
|
|||||||
rate=0,
|
rate=0,
|
||||||
billable_unit=1,
|
billable_unit=1,
|
||||||
notifications_sent=1,
|
notifications_sent=1,
|
||||||
postage='none',
|
postage='none'
|
||||||
):
|
):
|
||||||
data = FactBilling(bst_date=bst_date,
|
data = FactBilling(bst_date=bst_date,
|
||||||
service_id=template.service_id,
|
service_id=template.service_id,
|
||||||
|
|||||||
Reference in New Issue
Block a user