Added a query and endpoint to return the count of complaints for a date-range.

Unit tests for complaints_rest.get_complaint_count have yet to be written.
Maybe there is a better name for the new endpoint.
This commit is contained in:
Rebecca Law
2018-06-07 16:01:41 +01:00
committed by Katie Smith
parent e638653f11
commit 28beeebbf4
4 changed files with 51 additions and 11 deletions

View File

@@ -1,6 +1,11 @@
from datetime import timedelta
from sqlalchemy import desc
from app import db
from app.dao.dao_utils import transactional
from app.models import Complaint
from app.utils import get_london_midnight_in_utc
@transactional
@@ -9,8 +14,11 @@ def save_complaint(complaint):
def fetch_complaints_by_service(service_id):
return Complaint.query.filter_by(service_id=service_id).all()
return Complaint.query.filter_by(service_id=service_id).order_by(desc(Complaint.created_at)).all()
def fetch_count_of_complaints(start_date, end_date):
return Complaint.count.filter(Complaint.created_at >= start_date, Complaint.created_at < end_date)
start_date = get_london_midnight_in_utc(start_date)
end_date = get_london_midnight_in_utc(end_date + timedelta(days=1))
return Complaint.query.filter(Complaint.created_at >= start_date, Complaint.created_at < end_date).count()