12345678910111213141516171819202122232425262728293031323334353637383940 |
- from django.http import Http404
- from rest_framework import status
- from rest_framework.response import Response
- from rest_framework.reverse import reverse
- from rest_framework.views import APIView
- class IdempotentDestroyMixin:
- def destroy(self, request, *args, **kwargs):
- try:
- # noinspection PyUnresolvedReferences
- super().destroy(request, *args, **kwargs)
- except Http404:
- pass
- return Response(status=status.HTTP_204_NO_CONTENT)
- class Root(APIView):
- def get(self, request, *args, **kwargs):
- if self.request.user.is_authenticated:
- routes = {
- "account": {
- "show": reverse("account", request=request),
- "delete": reverse("account-delete", request=request),
- "change-email": reverse("account-change-email", request=request),
- "reset-password": reverse(
- "account-reset-password", request=request
- ),
- },
- "logout": reverse("logout", request=request),
- "tokens": reverse("token-list", request=request),
- "domains": reverse("domain-list", request=request),
- }
- else:
- routes = {
- "register": reverse("register", request=request),
- "login": reverse("login", request=request),
- "reset-password": reverse("account-reset-password", request=request),
- }
- return Response(routes)
|