mirror of
https://github.com/GSA/notifications-api.git
synced 2026-02-03 09:51:11 -05:00
Add utility function for subscription autoconfirm
This commit is contained in:
@@ -15,6 +15,7 @@ from app.dao import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
from app.notifications.process_client_response import validate_callback_data
|
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__)
|
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':
|
if 'Type' in ses_request and ses_request['Type'] == 'SubscriptionConfirmation':
|
||||||
current_app.logger.info("SNS subscription confirmation url: {}".format(ses_request['SubscribeURL']))
|
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)
|
errors = validate_callback_data(data=ses_request, fields=['Message'], client_name=client_name)
|
||||||
if errors:
|
if errors:
|
||||||
|
|||||||
8
app/notifications/utils.py
Normal file
8
app/notifications/utils.py
Normal file
@@ -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']
|
||||||
Reference in New Issue
Block a user