dispatch: allow dispatcher key in API URLs as well

This commit is contained in:
Brian S. Stephan 2015-06-20 11:22:17 -05:00
parent 241de26dd5
commit 98bb608291
2 changed files with 16 additions and 2 deletions

View File

@ -2,14 +2,18 @@
from django.conf.urls import patterns, url
from dispatch.views import (DispatchMessage, DispatcherList, DispatcherDetail, DispatcherActionList,
DispatcherActionDetail)
from dispatch.views import (DispatchMessage, DispatchMessageByKey, DispatcherList, DispatcherDetail,
DispatcherDetailByKey, DispatcherActionList, DispatcherActionDetail)
urlpatterns = patterns('dispatch.views',
url(r'^api/dispatchers/$', DispatcherList.as_view(), name='dispatch_api_dispatchers'),
url(r'^api/dispatchers/(?P<pk>[0-9]+)/$', DispatcherDetail.as_view(), name='dispatch_api_dispatcher_detail'),
url(r'^api/dispatchers/(?P<pk>[0-9]+)/message$', DispatchMessage.as_view(), name='dispatch_api_dispatch_message'),
url(r'^api/dispatchers/(?P<key>[A-Za-z-]+)/$', DispatcherDetailByKey.as_view(),
name='dispatch_api_dispatcher_detail'),
url(r'^api/dispatchers/(?P<key>[A-Za-z-]+)/message$', DispatchMessageByKey.as_view(),
name='dispatch_api_dispatch_message'),
url(r'^api/actions/$', DispatcherActionList.as_view(), name='dispatch_api_actions'),
url(r'^api/actions/(?P<pk>[0-9]+)/$', DispatcherActionDetail.as_view(), name='dispatch_api_action_detail'),

View File

@ -45,6 +45,11 @@ class DispatcherDetail(generics.RetrieveAPIView):
serializer_class = DispatcherSerializer
class DispatcherDetailByKey(DispatcherDetail):
lookup_field = 'key'
class DispatchMessage(generics.GenericAPIView):
"""Send a message to the given dispatcher."""
@ -85,6 +90,11 @@ class DispatchMessage(generics.GenericAPIView):
return Response(message.errors, status=status.HTTP_400_BAD_REQUEST)
class DispatchMessageByKey(DispatchMessage):
lookup_field = 'key'
class DispatcherActionList(generics.ListAPIView):
"""List all dispatchers."""