diff options
Diffstat (limited to 'postgresqleu/util/views.py')
-rw-r--r-- | postgresqleu/util/views.py | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/postgresqleu/util/views.py b/postgresqleu/util/views.py index 5d36d310..9ec82e0b 100644 --- a/postgresqleu/util/views.py +++ b/postgresqleu/util/views.py @@ -26,6 +26,34 @@ def markdown_preview(request): @csrf_exempt +def oauth_return(request, providerid): + if 'code' not in request.GET: + raise Http404('Code missing') + + provider = get_object_or_404(MessagingProvider, id=providerid) + impl = get_messaging(provider) + if hasattr(impl, 'oauth_return'): + err = impl.oauth_return(request) + if err: + return HttpResponse(err) + else: + if povider.series__id: + return HttpResponseRedirect('{}/events/admin/_series/{}/messaging/{}/'.format( + settings.SITEBASE, + provider.series_id, + provider.id, + )) + else: + return HttpResponseRedirect('{}/events/admin/news/messagingproviders/{}/'.format( + settings.SITEBASE, + provider.id, + )) + + else: + return HttpResponse('Unconfigured') + + +@csrf_exempt def messaging_webhook(request, providerid, token): provider = get_object_or_404(MessagingProvider, id=providerid, config__webhook__token=token) impl = get_messaging(provider) |