apiviews.py 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. # REST API ---------------------------
  2. from django.contrib.auth import get_user_model
  3. from drf_yasg import openapi
  4. from drf_yasg.utils import swagger_auto_schema
  5. from drf_yasg.views import get_schema_view
  6. from rest_framework import viewsets, permissions, exceptions
  7. from rest_framework.authentication import TokenAuthentication
  8. from rest_framework.decorators import action
  9. from rest_framework.response import Response
  10. from rest_framework.views import APIView
  11. from xmpp import cli
  12. from .serializer import *
  13. schema_view = get_schema_view(
  14. openapi.Info(
  15. title="ShariX Admin Open API",
  16. default_version='v1',
  17. description="REST API Documentation",
  18. # terms_of_service="https://www.google.com/policies/terms/",
  19. # contact=openapi.Contact(email="contact@snippets.local"),
  20. # license=openapi.License(name="BSD License"),
  21. ),
  22. public=False,
  23. permission_classes=[permissions.IsAuthenticated],
  24. )
  25. class SharixUserMVS(viewsets.ModelViewSet):
  26. queryset = get_user_model().objects.all()
  27. serializer_class = UserSerializer
  28. # permission_classes = [IsOwnerOrReadOnly]
  29. permission_classes = [permissions.IsAuthenticated]
  30. class GroupMVS(viewsets.ModelViewSet):
  31. queryset = Group.objects.all()
  32. serializer_class = GroupSerializer
  33. permission_classes = [permissions.IsAuthenticated]
  34. def update(self, request, *args, **kwargs):
  35. # print(self.request.user.pk)
  36. return super().update(request, *args, **kwargs)
  37. # def get_queryset(self):
  38. # owner_req = self.queryset.filter(wallet=self.request.user.pk)
  39. # return owner_req
  40. def partial_update(self, request, *args, **kwargs):
  41. return super().partial_update(request, *args, **kwargs)
  42. class PhoneSender(APIView):
  43. """
  44. Test description one
  45. """
  46. permission_classes = [permissions.IsAdminUser, permissions.IsAuthenticated]
  47. @swagger_auto_schema(operation_description="Test description two")
  48. def get(self, request, format=None):
  49. return Response({"message": "Для отправки сообщения используйте POST-запрос"})
  50. @swagger_auto_schema(operation_description="Test description three")
  51. def post(self, request, format=None):
  52. cli.send_message("sender", "password", "getter", request.data)
  53. return Response({"message": "Сообщение успешно отправлено!"})