version_1.py 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. from django.urls import include, path, re_path
  2. from djoser.views import UserView
  3. from rest_framework.routers import SimpleRouter
  4. from desecapi import views
  5. tokens_router = SimpleRouter()
  6. tokens_router.register(r'', views.TokenViewSet, base_name='token')
  7. auth_urls = [
  8. # Old user management
  9. # TODO deprecated, remove
  10. path('users/create/', views.UserCreateView.as_view(), name='user-create'), # deprecated
  11. path('token/create/', views.TokenCreateView.as_view(), name='token-create'), # deprecated
  12. path('token/destroy/', views.TokenDestroyView.as_view(), name='token-destroy'), # deprecated
  13. # New user management
  14. path('users/', views.UserCreateView.as_view(), name='register'),
  15. # Token management
  16. path('token/login/', views.TokenCreateView.as_view(), name='login'),
  17. path('token/logout/', views.TokenDestroyView.as_view(), name='logout'),
  18. path('', include('djoser.urls.authtoken')), # note: this is partially overwritten by the two lines above
  19. path('tokens/', include(tokens_router.urls)),
  20. # User home
  21. path('me/', UserView.as_view(), name='user'),
  22. ]
  23. api_urls = [
  24. # API home
  25. path('', views.Root.as_view(), name='root'),
  26. # Domain and RRSet endpoints
  27. path('domains/', views.DomainList.as_view(), name='domain-list'),
  28. path('domains/<name>/', views.DomainDetail.as_view(), name='domain-detail'),
  29. path('domains/<name>/rrsets/', views.RRsetList.as_view(), name='rrsets'),
  30. path('domains/<name>/rrsets/.../<type>/', views.RRsetDetail.as_view()),
  31. re_path(r'domains/(?P<name>[^/]+)/rrsets/(?P<subname>(\*)?[a-zA-Z.\-_0-9]*)\.\.\./(?P<type>[A-Z][A-Z0-9]*)/',
  32. views.RRsetDetail.as_view(), name='rrset'),
  33. path('domains/<name>/rrsets/@/<type>/', views.RRsetDetail.as_view()),
  34. path('domains/<name>/rrsets/<subname>/<type>/', views.RRsetDetail.as_view()),
  35. re_path(r'domains/(?P<name>[^/]+)/rrsets/(?P<subname>(\*)?[a-zA-Z.\-_0-9]*)@/(?P<type>[A-Z][A-Z0-9]*)/',
  36. views.RRsetDetail.as_view(), name='rrset@'),
  37. # DNS query endpoint
  38. # TODO remove?
  39. path('dns', views.DnsQuery.as_view(), name='dns-query'),
  40. # DynDNS update endpoint
  41. path('dyndns/update', views.DynDNS12Update.as_view(), name='dyndns12update'),
  42. # Donation endpoints
  43. path('donation/', views.DonationList.as_view(), name='donation'),
  44. # Unlock endpoints
  45. path('unlock/user/<email>', views.unlock, name='unlock/byEmail'),
  46. path('unlock/done', views.unlock_done, name='unlock/done'),
  47. ]
  48. app_name = 'desecapi'
  49. urlpatterns = [
  50. path('auth/', include(auth_urls)),
  51. path('', include(api_urls)),
  52. ]