diff --git a/dr_botzo/dispatch/urls.py b/dr_botzo/dispatch/urls.py index 624528e..a1b04d5 100644 --- a/dr_botzo/dispatch/urls.py +++ b/dr_botzo/dispatch/urls.py @@ -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[0-9]+)/$', DispatcherDetail.as_view(), name='dispatch_api_dispatcher_detail'), url(r'^api/dispatchers/(?P[0-9]+)/message$', DispatchMessage.as_view(), name='dispatch_api_dispatch_message'), + url(r'^api/dispatchers/(?P[A-Za-z-]+)/$', DispatcherDetailByKey.as_view(), + name='dispatch_api_dispatcher_detail'), + url(r'^api/dispatchers/(?P[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[0-9]+)/$', DispatcherActionDetail.as_view(), name='dispatch_api_action_detail'), diff --git a/dr_botzo/dispatch/views.py b/dr_botzo/dispatch/views.py index 494c435..6975a61 100644 --- a/dr_botzo/dispatch/views.py +++ b/dr_botzo/dispatch/views.py @@ -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."""