From 04b003c152308465f3f1a02120a5a7b024371f32 Mon Sep 17 00:00:00 2001 From: Athanasios Voutsadakis Date: Tue, 25 Apr 2017 14:38:38 +0100 Subject: [PATCH] Add utility function for subscription autoconfirm --- app/notifications/notifications_ses_callback.py | 3 +++ app/notifications/utils.py | 8 ++++++++ 2 files changed, 11 insertions(+) create mode 100644 app/notifications/utils.py diff --git a/app/notifications/notifications_ses_callback.py b/app/notifications/notifications_ses_callback.py index 3980f5add..2f4ba4bf3 100644 --- a/app/notifications/notifications_ses_callback.py +++ b/app/notifications/notifications_ses_callback.py @@ -15,6 +15,7 @@ from app.dao import ( ) from app.notifications.process_client_response import validate_callback_data +from app.notifications.utils import confirm_subscription ses_callback_blueprint = Blueprint('notifications_ses_callback', __name__) @@ -33,6 +34,8 @@ def process_ses_response(): if 'Type' in ses_request and ses_request['Type'] == 'SubscriptionConfirmation': current_app.logger.info("SNS subscription confirmation url: {}".format(ses_request['SubscribeURL'])) + subscribed_topic = confirm_subscription(ses_request) + current_app.logger.info("Automatically subscribed to topic: {}".format(subscribed_topic)) errors = validate_callback_data(data=ses_request, fields=['Message'], client_name=client_name) if errors: diff --git a/app/notifications/utils.py b/app/notifications/utils.py new file mode 100644 index 000000000..ca9bf131c --- /dev/null +++ b/app/notifications/utils.py @@ -0,0 +1,8 @@ +import requests + + +def confirm_subscription(confirmation_request): + url = confirmation_request['SubscribeURL'] + response = requests.get(url) + if response.code < 400: + return confirmation_request['TopicArn']