3
3
from rest_framework .response import Response
4
4
from rest_framework .serializers import Serializer , CharField , IntegerField
5
5
from rest_framework .viewsets import GenericViewSet , ModelViewSet
6
- from course_api .typeform .models import Form , FormField
7
- from course_api .typeform .serializers import FieldSerializer , FormSerializer
6
+ from rest_framework .permissions import IsAuthenticated
7
+ from course_api .typeform .models import Form , FormField , Submission
8
+ from course_api .typeform .serializers import FieldSerializer , FormSerializer , SubmissionSerializer
8
9
from drf_yasg .utils import swagger_auto_schema
9
10
from yaml import serialize
10
11
@@ -36,10 +37,8 @@ def mock_test(self, request):
36
37
])
37
38
38
39
39
- class FormViewSet (LoginRequiredMixin , RetrieveModelMixin , ListModelMixin , UpdateModelMixin , GenericViewSet , CreateModelMixin ):
40
+ class FormViewSet (RetrieveModelMixin , ListModelMixin , UpdateModelMixin , GenericViewSet , CreateModelMixin ):
40
41
serializer_class = FormSerializer
41
- authentication_classes = []
42
- authorization_classes = []
43
42
queryset = Form .objects .all ()
44
43
45
44
def get_queryset (self , * args , ** kwargs ):
@@ -64,3 +63,24 @@ def get_queryset(self):
64
63
def perform_create (self , serializer ):
65
64
# Add Authorization
66
65
serializer .save (form_id = self .kwargs ['form_pk' ])
66
+
67
+
68
+ class SubmissionViewSet (RetrieveModelMixin , ListModelMixin , CreateModelMixin , GenericViewSet ):
69
+ serializer_class = SubmissionSerializer
70
+ permission_classes = [IsAuthenticated ]
71
+
72
+ def get_queryset (self ):
73
+ if (self .request .user .is_anonymous ):
74
+ raise PermissionError ("You must be authenticated to use this API." )
75
+ return Submission .objects .filter (form = self .kwargs ['form_pk' ])
76
+
77
+ def perform_create (self , serializer ):
78
+ # Add Authorization
79
+ serializer .save (form_id = self .kwargs ['form_pk' ])
80
+
81
+ def list (self , request , * args , ** kwargs ):
82
+ # Add Authorization
83
+ if (self .request .user .is_anonymous ):
84
+ raise PermissionError ("You must be authenticated to use this API." )
85
+ self .queryset .filter (form__created_by = self .request .user )
86
+ return super ().list (request , * args , ** kwargs )
0 commit comments