version_1.py 2.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. from django.urls import include, path, re_path
  2. from rest_framework.routers import SimpleRouter
  3. from desecapi import views
  4. tokens_router = SimpleRouter()
  5. tokens_router.register(r'', views.TokenViewSet, base_name='token')
  6. auth_urls = [
  7. # User management
  8. path('', views.AccountCreateView.as_view(), name='register'),
  9. path('account/', views.AccountView.as_view(), name='account'),
  10. path('account/delete/', views.AccountDeleteView.as_view(), name='account-delete'),
  11. path('account/change-email/', views.AccountChangeEmailView.as_view(), name='account-change-email'),
  12. path('account/reset-password/', views.AccountResetPasswordView.as_view(), name='account-reset-password'),
  13. path('login/', views.AccountLoginView.as_view(), name='login'),
  14. # Token management
  15. path('tokens/', include(tokens_router.urls)),
  16. ]
  17. api_urls = [
  18. # API home
  19. path('', views.Root.as_view(), name='root'),
  20. # Domain and RRSet management
  21. path('domains/', views.DomainList.as_view(), name='domain-list'),
  22. path('domains/<name>/', views.DomainDetail.as_view(), name='domain-detail'),
  23. path('domains/<name>/rrsets/', views.RRsetList.as_view(), name='rrsets'),
  24. path('domains/<name>/rrsets/.../<type>/', views.RRsetDetail.as_view(), kwargs={'subname': ''}),
  25. re_path(r'domains/(?P<name>[^/]+)/rrsets/(?P<subname>[^/]*)\.\.\./(?P<type>[^/]+)/',
  26. views.RRsetDetail.as_view(), name='rrset'),
  27. path('domains/<name>/rrsets/@/<type>/', views.RRsetDetail.as_view(), kwargs={'subname': ''}),
  28. re_path(r'domains/(?P<name>[^/]+)/rrsets/(?P<subname>[^/]*)@/(?P<type>[^/]+)/',
  29. views.RRsetDetail.as_view(), name='rrset@'),
  30. path('domains/<name>/rrsets/<subname>/<type>/', views.RRsetDetail.as_view()),
  31. # DynDNS update
  32. path('dyndns/update', views.DynDNS12Update.as_view(), name='dyndns12update'),
  33. # Donation
  34. path('donation/', views.DonationList.as_view(), name='donation'),
  35. # Authenticated Actions
  36. path('v/activate-account/<code>/', views.AuthenticatedActivateUserActionView.as_view(), name='confirm-activate-account'),
  37. path('v/change-email/<code>/', views.AuthenticatedChangeEmailUserActionView.as_view(), name='confirm-change-email'),
  38. path('v/reset-password/<code>/', views.AuthenticatedResetPasswordUserActionView.as_view(), name='confirm-reset-password'),
  39. path('v/delete-account/<code>/', views.AuthenticatedDeleteUserActionView.as_view(), name='confirm-delete-account'),
  40. # CAPTCHA
  41. path('captcha/', views.CaptchaView.as_view(), name='captcha'),
  42. ]
  43. app_name = 'desecapi'
  44. urlpatterns = [
  45. path('auth/', include(auth_urls)),
  46. path('', include(api_urls)),
  47. ]