Use Zendesk form for general enquiries

This commit is contained in:
Katie Smith
2021-09-24 11:09:28 +01:00
parent e9948a0234
commit 437af32d82
2 changed files with 55 additions and 19 deletions

View File

@@ -4,6 +4,9 @@ import pytz
from flask import redirect, render_template, request, session, url_for
from flask_login import current_user
from govuk_bank_holidays.bank_holidays import BankHolidays
from notifications_utils.clients.zendesk.zendesk_client import (
NotifySupportTicket,
)
from app import convert_to_boolean, current_service
from app.extensions import zendesk_client
@@ -124,14 +127,19 @@ def feedback(ticket_type):
service_string,
)
zendesk_client.create_ticket(
ticket = NotifySupportTicket(
subject='Notify feedback',
message=feedback_msg,
ticket_type=ticket_type,
p1=out_of_hours_emergency,
user_name=user_name,
user_email=user_email,
user_name=user_name
org_id=current_service.organisation_id if current_service else None,
org_type=current_service.organisation_type if current_service else None,
service_id=current_service.id if current_service else None,
)
zendesk_client.send_ticket_to_zendesk(ticket)
return redirect(url_for(
'.thanks',
out_of_hours_emergency=out_of_hours_emergency,

View File

@@ -12,7 +12,7 @@ from app.models.feedback import (
PROBLEM_TICKET_TYPE,
QUESTION_TICKET_TYPE,
)
from tests.conftest import normalize_spaces
from tests.conftest import SERVICE_ONE_ID, normalize_spaces
def no_redirect():
@@ -138,9 +138,16 @@ def test_get_feedback_page(client, ticket_type, expected_status_code):
@freeze_time('2016-12-12 12:00:00.000000')
@pytest.mark.parametrize('ticket_type', [PROBLEM_TICKET_TYPE, QUESTION_TICKET_TYPE])
def test_passed_non_logged_in_user_details_through_flow(client, mocker, ticket_type):
mock_post = mocker.patch('app.main.views.feedback.zendesk_client.create_ticket')
mock_ticket = mocker.patch(
'app.main.views.feedback.NotifySupportTicket',
return_value='feedback_ticket',
)
mock_send_ticket_to_zendesk = mocker.patch(
'app.main.views.feedback.zendesk_client.send_ticket_to_zendesk',
autospec=True,
)
data = {'feedback': 'blah', 'name': 'Steve Irwin', 'email_address': 'rip@gmail.com'}
data = {'feedback': 'blah', 'name': 'Anne Example', 'email_address': 'anne@example.com'}
resp = client.post(
url_for('main.feedback', ticket_type=ticket_type),
@@ -154,14 +161,18 @@ def test_passed_non_logged_in_user_details_through_flow(client, mocker, ticket_t
email_address_provided=True,
_external=True,
)
mock_post.assert_called_with(
mock_ticket.assert_called_once_with(
subject='Notify feedback',
message='blah\n',
user_email='rip@gmail.com',
user_name='Steve Irwin',
ticket_type=ticket_type,
p1=ANY
p1=False,
user_name='Anne Example',
user_email='anne@example.com',
org_id=None,
org_type=None,
service_id=None
)
mock_send_ticket_to_zendesk.assert_called_once_with('feedback_ticket')
@freeze_time("2016-12-12 12:00:00.000000")
@@ -177,7 +188,14 @@ def test_passes_user_details_through_flow(
ticket_type,
data
):
mock_post = mocker.patch('app.main.views.feedback.zendesk_client.create_ticket')
mock_ticket = mocker.patch(
'app.main.views.feedback.NotifySupportTicket',
return_value='feedback_ticket',
)
mock_send_ticket_to_zendesk = mocker.patch(
'app.main.views.feedback.zendesk_client.send_ticket_to_zendesk',
autospec=True,
)
client_request.post(
'main.feedback',
@@ -191,25 +209,29 @@ def test_passes_user_details_through_flow(
_external=True,
),
)
mock_post.assert_called_with(
mock_ticket.assert_called_once_with(
subject='Notify feedback',
message=ANY,
user_email='test@user.gov.uk',
user_name='Test User',
ticket_type=ticket_type,
p1=ANY
p1=False,
user_name='Test User',
user_email='test@user.gov.uk',
org_id=None,
org_type='central',
service_id=SERVICE_ONE_ID
)
assert mock_post.call_args[1]['message'] == '\n'.join([
assert mock_ticket.call_args[1]['message'] == '\n'.join([
'blah',
'Service: "service one"',
url_for(
'main.service_dashboard',
service_id='596364a0-858e-42c8-9062-a8fe822260eb',
service_id=SERVICE_ONE_ID,
_external=True
),
''
])
mock_send_ticket_to_zendesk.assert_called_once_with('feedback_ticket')
@freeze_time('2016-12-12 12:00:00.000000')
@@ -289,7 +311,13 @@ def test_urgency(
is_out_of_hours_emergency,
):
mocker.patch('app.main.views.feedback.in_business_hours', return_value=is_in_business_hours)
mock_post = mocker.patch('app.main.views.feedback.zendesk_client.create_ticket')
mock_ticket = mocker.patch('app.main.views.feedback.NotifySupportTicket')
mocker.patch(
'app.main.views.feedback.zendesk_client.send_ticket_to_zendesk',
autospec=True,
)
client_request.post(
'main.feedback',
ticket_type=ticket_type,
@@ -303,7 +331,7 @@ def test_urgency(
_external=True,
),
)
assert mock_post.call_args[1]['p1'] == is_out_of_hours_emergency
assert mock_ticket.call_args[1]['p1'] == is_out_of_hours_emergency
ids, params = zip(*[