From f329e138cd50e18d904ef23d5829fe9d6e77248f Mon Sep 17 00:00:00 2001 From: Chris Hill-Scott Date: Mon, 6 Nov 2017 13:22:46 +0000 Subject: [PATCH] Factor out string escaping code So that it only lives in one place. --- app/main/views/conversation.py | 4 ++-- app/main/views/dashboard.py | 3 ++- app/utils.py | 4 ++++ 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/app/main/views/conversation.py b/app/main/views/conversation.py index e975fe244..53c79372a 100644 --- a/app/main/views/conversation.py +++ b/app/main/views/conversation.py @@ -10,7 +10,7 @@ from notifications_utils.recipients import format_phone_number_human_readable from notifications_utils.template import SMSPreviewTemplate from app.main import main from app.main.forms import SearchTemplatesForm -from app.utils import user_has_permissions +from app.utils import user_has_permissions, unescape_string from app import notification_api_client, service_api_client from notifications_python_client.errors import HTTPError @@ -133,6 +133,6 @@ def get_sms_thread(service_id, user_number): def get_sms_content(notification, is_inbound): return ( - bytes(notification['content'], "utf-8").decode('unicode_escape') if is_inbound else + unescape_string(notification['content']) if is_inbound else notification['template']['content'] ) diff --git a/app/main/views/dashboard.py b/app/main/views/dashboard.py index b81da435f..5b59ff912 100644 --- a/app/main/views/dashboard.py +++ b/app/main/views/dashboard.py @@ -31,6 +31,7 @@ from app.utils import ( FAILURE_STATUSES, REQUESTED_STATUSES, Spreadsheet, + unescape_string, ) @@ -204,7 +205,7 @@ def get_inbox_partials(service_id): for message in messages_to_show }: message.update({ - 'content': bytes(message['content'], 'utf-8').decode('unicode_escape') + 'content': unescape_string(message['content']) }) messages_to_show.append(message) diff --git a/app/utils.py b/app/utils.py index 3a69f4486..e446f9b94 100644 --- a/app/utils.py +++ b/app/utils.py @@ -379,3 +379,7 @@ def get_cdn_domain(): domain = parsed_uri.netloc[len(subdomain + '.'):] return "static-logos.{}".format(domain) + + +def unescape_string(string): + return bytes(string, "utf-8").decode('unicode_escape')