version_1.py 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  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('tokens/', include(tokens_router.urls)),
  19. # User home
  20. path('me/', UserView.as_view(), name='user'),
  21. ]
  22. api_urls = [
  23. # API home
  24. path('', views.Root.as_view(), name='root'),
  25. # Domain and RRSet endpoints
  26. path('domains/', views.DomainList.as_view(), name='domain-list'),
  27. path('domains/<name>/', views.DomainDetail.as_view(), name='domain-detail'),
  28. path('domains/<name>/rrsets/', views.RRsetList.as_view(), name='rrsets'),
  29. path('domains/<name>/rrsets/.../<type>/', views.RRsetDetail.as_view(), kwargs={'subname': ''}),
  30. re_path(r'domains/(?P<name>[^/]+)/rrsets/(?P<subname>[^/]*)\.\.\./(?P<type>[^/]+)/',
  31. views.RRsetDetail.as_view(), name='rrset'),
  32. path('domains/<name>/rrsets/@/<type>/', views.RRsetDetail.as_view(), kwargs={'subname': ''}),
  33. re_path(r'domains/(?P<name>[^/]+)/rrsets/(?P<subname>[^/]*)@/(?P<type>[^/]+)/',
  34. views.RRsetDetail.as_view(), name='rrset@'),
  35. path('domains/<name>/rrsets/<subname>/<type>/', views.RRsetDetail.as_view()),
  36. # DNS query endpoint
  37. # TODO remove?
  38. path('dns', views.DnsQuery.as_view(), name='dns-query'),
  39. # DynDNS update endpoint
  40. path('dyndns/update', views.DynDNS12Update.as_view(), name='dyndns12update'),
  41. # Donation endpoints
  42. path('donation/', views.DonationList.as_view(), name='donation'),
  43. # Unlock endpoints
  44. path('unlock/user/<email>', views.unlock, name='unlock/byEmail'),
  45. path('unlock/done', views.unlock_done, name='unlock/done'),
  46. ]
  47. app_name = 'desecapi'
  48. urlpatterns = [
  49. path('auth/', include(auth_urls)),
  50. path('', include(api_urls)),
  51. ]