mirror of
https://github.com/GSA/notifications-api.git
synced 2026-06-01 20:08:27 -04:00
[WIP]
This commit is contained in:
@@ -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()
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user