New endpoint to return data for complaints.

This commit is contained in:
Rebecca Law
2018-06-05 14:25:24 +01:00
parent 2bc6315408
commit 64f077f2f4
8 changed files with 81 additions and 2 deletions

View File

View File

@@ -0,0 +1,24 @@
import json
from tests import create_authorization_header
from tests.app.db import create_complaint, create_service, create_template, create_notification
def test_get_all_complaints_returns_list_for_multiple_services_and_complaints(client, notify_db_session):
service=create_service(service_name='service1')
template = create_template(service=service)
notification = create_notification(template=template)
complaint_1 = create_complaint() # default service
complaint_2 = create_complaint(service=service, notification=notification)
response = client.get('/complaint', headers=[create_authorization_header()])
assert response.status_code == 200
assert json.loads(response.get_data(as_text=True)) == [complaint_2.serialize(), complaint_1.serialize()]
def test_get_all_complaints_returns_empty_list(client):
response = client.get('/complaint', headers=[create_authorization_header()])
assert response.status_code == 200
assert json.loads(response.get_data(as_text=True)) == []

View File

@@ -22,7 +22,7 @@ def test_fetch_complaint_by_service_returns_one(sample_service, sample_email_not
assert complaints[0] == complaint
def test_fetch_complaint_by_service_returns_empty_list(sample_service, sample_email_notification):
def test_fetch_complaint_by_service_returns_empty_list(sample_service):
complaints = fetch_complaints_by_service(service_id=sample_service.id)
assert len(complaints) == 0

View File

@@ -34,7 +34,8 @@ from app.models import (
AnnualBilling,
LetterRate,
InvitedOrganisationUser,
FactBilling
FactBilling,
Complaint
)
from app.dao.users_dao import save_model_user
from app.dao.notifications_dao import (
@@ -564,6 +565,27 @@ def create_ft_billing(bst_date,
return data
def create_complaint(service=None,
notification=None):
if not service:
service=create_service()
if not notification:
template = create_template(service=service, template_type='email')
notification = create_notification(template=template)
complaint = Complaint(notification_id=notification.id,
service_id=service.id,
ses_feedback_id=str(uuid.uuid4()),
complaint_type='abuse',
complaint_date=datetime.utcnow()
)
db.session.add(complaint)
db.session.commit()
return complaint
def ses_complaint_callback_malformed_message_id():
return '{\n "Type" : "Notification",\n "msgId" : "ref1",' \
'\n "TopicArn" : "arn:aws:sns:eu-west-1:123456789012:testing",' \