MCPcopy
hub / github.com/suitenumerique/docs / create

Method create

src/backend/core/api/viewsets.py:3002–3031  ·  view source on GitHub ↗

Create a document ask for access resource.

(self, request, *args, **kwargs)

Source from the content-addressed store, hash-verified

3000 return queryset
3001
3002 def create(self, request, *args, **kwargs):
3003 """Create a document ask for access resource."""
3004 document = self.get_document_or_404()
3005
3006 if document.get_role(request.user) in models.PRIVILEGED_ROLES:
3007 return drf.response.Response(
3008 {"detail": "You already have privileged access to this document."},
3009 status=drf.status.HTTP_400_BAD_REQUEST,
3010 )
3011
3012 serializer = serializers.DocumentAskForAccessCreateSerializer(data=request.data)
3013 serializer.is_valid(raise_exception=True)
3014
3015 queryset = self.get_queryset()
3016
3017 if queryset.filter(user=request.user).exists():
3018 return drf.response.Response(
3019 {"detail": "You already ask to access to this document."},
3020 status=drf.status.HTTP_400_BAD_REQUEST,
3021 )
3022
3023 ask_for_access = models.DocumentAskForAccess.objects.create(
3024 document=document,
3025 user=request.user,
3026 role=serializer.validated_data["role"],
3027 )
3028
3029 send_ask_for_access_mail.delay(ask_for_access.id)
3030
3031 return drf.response.Response(status=drf.status.HTTP_201_CREATED)
3032
3033 @drf.decorators.action(detail=True, methods=["post"])
3034 def accept(self, request, *args, **kwargs):

Calls 4

get_document_or_404Method · 0.95
get_querysetMethod · 0.95
get_roleMethod · 0.80
filterMethod · 0.80