summaryrefslogtreecommitdiff
path: root/postgresqleu/util/views.py
diff options
context:
space:
mode:
Diffstat (limited to 'postgresqleu/util/views.py')
-rw-r--r--postgresqleu/util/views.py19
1 files changed, 19 insertions, 0 deletions
diff --git a/postgresqleu/util/views.py b/postgresqleu/util/views.py
new file mode 100644
index 00000000..521fc331
--- /dev/null
+++ b/postgresqleu/util/views.py
@@ -0,0 +1,19 @@
+from django.views.decorators.csrf import csrf_exempt
+from django.shortcuts import get_object_or_404
+
+from postgresqleu.confreg.models import MessagingProvider
+from postgresqleu.util.messaging import get_messaging
+from postgresqleu.util.messaging.twitter import process_twitter_webhook
+
+
+@csrf_exempt
+def messaging_webhook(request, providerid, token):
+ provider = get_object_or_404(MessagingProvider, id=providerid, config__webhook__token=token)
+ impl = get_messaging(provider)
+ return impl.process_webhook(request)
+
+
+# Twitter needs a special webhook URL since it's global and not per provider
+@csrf_exempt
+def twitter_webhook(request):
+ return process_twitter_webhook(request)