diff --git a/dj_elastictranscoder/views.py b/dj_elastictranscoder/views.py index fd38119..c6e85ba 100644 --- a/dj_elastictranscoder/views.py +++ b/dj_elastictranscoder/views.py @@ -1,6 +1,8 @@ import json +import requests from django.http import HttpResponse, HttpResponseBadRequest +from django.views.decorators.http import require_http_methods from django.views.decorators.csrf import csrf_exempt from django.core.mail import mail_admins @@ -12,29 +14,28 @@ ) @csrf_exempt +@require_http_methods(["GET", "POST"]) def endpoint(request): """ Receive SNS notification """ - try: data = json.loads(request.read().decode('utf-8')) except ValueError: return HttpResponseBadRequest('Invalid JSON') - # handle SNS subscription if data['Type'] == 'SubscriptionConfirmation': subscribe_url = data['SubscribeURL'] + requests.get(subscribe_url) subscribe_body = """ - Please visit this URL below to confirm your subscription with SNS + This URL will confirm your subscription with SNS. I've already visited it, but you can too! %s """ % subscribe_url mail_admins('Please confirm SNS subscription', subscribe_body) - return HttpResponse('OK') + return HttpResponse('Subscription confirmed') - # try: message = json.loads(data['Message']) diff --git a/setup.py b/setup.py index 8bffd3a..5c05def 100644 --- a/setup.py +++ b/setup.py @@ -17,6 +17,7 @@ install_requires=[ "django >= 1.8", "boto3 >= 1.1", + "requests", ], classifiers=[ "Intended Audience :: Developers",