44
55from . import serializers
66from . import models
7- from .permissions import IsLinkOwner , IsSubTopicLinkOwner , IsSubTopicOwner , IsTopicOwner , IsCurationOwner
7+ from .permissions import (
8+ IsLinkOwner ,
9+ IsSubTopicLinkOwner ,
10+ IsSubTopicOwner ,
11+ IsTopicOwner ,
12+ IsCurationOwner ,
13+ )
814
915from rest_framework .decorators import api_view
1016from rest_framework .response import Response
1117from rest_framework .reverse import reverse
1218
1319
14- @api_view ([' GET' ])
20+ @api_view ([" GET" ])
1521def api_root (request , format = None ):
16- return Response ({
17- 'subjects' : reverse ('subject-list' , request = request , format = format ),
18- 'curations' : reverse ('curation-list' , request = request , format = format )
19- })
20- class SubjectList (mixins .ListModelMixin ,
21- generics .GenericAPIView ):
22+ return Response (
23+ {
24+ "subjects" : reverse ("subject-list" , request = request , format = format ),
25+ "curations" : reverse ("curation-list" , request = request , format = format ),
26+ }
27+ )
28+
29+
30+ class SubjectList (mixins .ListModelMixin , generics .GenericAPIView ):
2231 queryset = models .Subject .objects .all ()
2332 serializer_class = serializers .SubjectSerializer
2433
2534 def get (self , request , * args , ** kwargs ):
2635 return self .list (request , * args , ** kwargs )
2736
2837
29- class SubjectDetail (mixins .RetrieveModelMixin ,
30- generics .GenericAPIView ):
38+ class SubjectDetail (mixins .RetrieveModelMixin , generics .GenericAPIView ):
3139 queryset = models .Subject .objects .all ()
3240 serializer_class = serializers .SubjectSerializer
3341
3442 def retrieve (self , request , * args , ** kwargs ):
3543 return self .create (request , * args , ** kwargs )
3644
3745
38- class CurationList (mixins .ListModelMixin ,
39- mixins .CreateModelMixin ,
40- generics .GenericAPIView ):
46+ class CurationList (
47+ mixins .ListModelMixin , mixins .CreateModelMixin , generics .GenericAPIView
48+ ):
49+
50+ queryset = models .Curation .objects .all ()
51+ serializer_class = serializers .CurationSerializer
52+ permission_classes = [permissions .IsAuthenticatedOrReadOnly , IsCurationOwner ]
53+
54+ def get_queryset (self ):
55+ """
56+ Optionally restricts the returned purchases to a given user,
57+ by filtering against a `username` query parameter in the URL.
58+ """
59+ queryset = models .Curation .objects .all ()
60+ subject = self .request .query_params .get ("subject" )
61+ if subject is not None :
62+ queryset = queryset .filter (subject = subject )
63+ return queryset
64+
65+ def post (self , request , * args , ** kwargs ):
66+ return self .create (request , * args , ** kwargs )
4167
42- queryset = models .Curation .objects .all ()
43- serializer_class = serializers .CurationSerializer
44- permission_classes = [permissions .IsAuthenticatedOrReadOnly , IsCurationOwner ]
68+ def get (self , request , * args , ** kwargs ):
69+ return self .list (request , * args , ** kwargs )
4570
46- def get_queryset (self ):
47- """
48- Optionally restricts the returned purchases to a given user,
49- by filtering against a `username` query parameter in the URL.
50- """
51- queryset = models .Curation .objects .all ()
52- subject = self .request .query_params .get ('subject' )
53- if subject is not None :
54- queryset = queryset .filter (subject = subject )
55- return queryset
71+ def perform_create (self , serializer ):
72+ serializer .save (owner = self .request .user )
5673
57- def post (self , request , * args , ** kwargs ):
58- return self .create (request , * args , ** kwargs )
5974
60- def get (self , request , * args , ** kwargs ):
61- return self .list (request , * args , ** kwargs )
62-
63- def perform_create (self , serializer ):
64- serializer .save (owner = self .request .user )
75+ class CurationDetail (
76+ mixins .RetrieveModelMixin ,
77+ mixins .DestroyModelMixin ,
78+ mixins .UpdateModelMixin ,
79+ generics .GenericAPIView ,
80+ ):
6581
82+ queryset = models .Curation .objects .all ()
83+ serializer_class = serializers .CurationSerializer
6684
67- class CurationDetail (mixins .RetrieveModelMixin ,
68- mixins .DestroyModelMixin ,
69- mixins .UpdateModelMixin ,
70- generics .GenericAPIView ):
85+ permission_classes = [permissions .IsAuthenticatedOrReadOnly , IsCurationOwner ]
7186
72- queryset = models . Curation . objects . all ()
73- serializer_class = serializers . CurationSerializer
87+ def get ( self , request , * args , ** kwargs ):
88+ return self . retrieve ( request , * args , ** kwargs )
7489
75- permission_classes = [permissions .IsAuthenticatedOrReadOnly , IsCurationOwner ]
90+ def put (self , request , * args , ** kwargs ):
91+ return self .update (request , * args , ** kwargs )
7692
77- def get (self , request , * args , ** kwargs ):
78- return self .retrieve (request , * args , ** kwargs )
79-
80- def put (self , request , * args , ** kwargs ):
81- return self .update (request , * args , ** kwargs )
82-
83- def delete (self , request , * args , ** kwargs ):
84- return super ().destroy (request , * args , ** kwargs )
93+ def delete (self , request , * args , ** kwargs ):
94+ return super ().destroy (request , * args , ** kwargs )
8595
8696
8797class TopicCreate (mixins .CreateModelMixin , generics .GenericAPIView ):
8898
89- queryset = models .Topic .objects .all ()
90- serializer_class = serializers .TopicSerializer
91- permission_classes = [permissions .IsAuthenticatedOrReadOnly , IsTopicOwner ]
99+ queryset = models .Topic .objects .all ()
100+ serializer_class = serializers .TopicSerializer
101+ permission_classes = [permissions .IsAuthenticatedOrReadOnly , IsTopicOwner ]
102+
103+ def post (self , request , * args , ** kwargs ):
104+ return self .create (request , * args , ** kwargs )
105+
92106
93- def post (self , request , * args , ** kwargs ):
94- return self .create (request , * args , ** kwargs )
107+ class TopicDetail (
108+ mixins .DestroyModelMixin , mixins .UpdateModelMixin , generics .GenericAPIView
109+ ):
110+ queryset = models .Topic .objects .all ()
111+ serializer_class = serializers .TopicSerializer
112+ permission_classes = [permissions .IsAuthenticatedOrReadOnly , IsTopicOwner ]
95113
96- class TopicDetail (mixins .DestroyModelMixin , mixins .UpdateModelMixin , generics .GenericAPIView ):
97- queryset = models .Topic .objects .all ()
98- serializer_class = serializers .TopicSerializer
99- permission_classes = [permissions .IsAuthenticatedOrReadOnly , IsTopicOwner ]
114+ def delete (self , request , * args , ** kwargs ):
115+ return super ().destroy (request , * args , ** kwargs )
100116
101- def delete (self , request , * args , ** kwargs ):
102- return super ().destroy (request , * args , ** kwargs )
103-
104- def put (self , request , * args , ** kwargs ):
105- return self .update (request , * args , ** kwargs )
117+ def put (self , request , * args , ** kwargs ):
118+ return self .update (request , * args , ** kwargs )
106119
107120
108121class LinkCreate (mixins .CreateModelMixin , generics .GenericAPIView ):
109122
110- queryset = models .Link .objects .all ()
111- serializer_class = serializers .LinkSerializer
112- permission_classes = [permissions .IsAuthenticatedOrReadOnly , IsLinkOwner ]
123+ queryset = models .Link .objects .all ()
124+ serializer_class = serializers .LinkSerializer
125+ permission_classes = [permissions .IsAuthenticatedOrReadOnly , IsLinkOwner ]
113126
114- def post (self , request , * args , ** kwargs ):
115- return self .create (request , * args , ** kwargs )
127+ def post (self , request , * args , ** kwargs ):
128+ return self .create (request , * args , ** kwargs )
129+
130+
131+ class LinkDetail (
132+ mixins .DestroyModelMixin , mixins .UpdateModelMixin , generics .GenericAPIView
133+ ):
134+ queryset = models .Link .objects .all ()
135+ serializer_class = serializers .LinkSerializer
136+ permission_classes = [permissions .IsAuthenticatedOrReadOnly , IsLinkOwner ]
116137
117- class LinkDetail (mixins .DestroyModelMixin , mixins .UpdateModelMixin , generics .GenericAPIView ):
118- queryset = models .Link .objects .all ()
119- serializer_class = serializers .LinkSerializer
120- permission_classes = [permissions .IsAuthenticatedOrReadOnly , IsLinkOwner ]
138+ def delete (self , request , * args , ** kwargs ):
139+ return super ().destroy (request , * args , ** kwargs )
140+
141+ def put (self , request , * args , ** kwargs ):
142+ return self .update (request , * args , ** kwargs )
121143
122- def delete (self , request , * args , ** kwargs ):
123- return super ().destroy (request , * args , ** kwargs )
124-
125- def put (self , request , * args , ** kwargs ):
126- return self .update (request , * args , ** kwargs )
127144
128145class SubTopicCreate (mixins .CreateModelMixin , generics .GenericAPIView ):
129146
130- queryset = models .SubTopic .objects .all ()
131- serializer_class = serializers .SubTopicSerializer
132- permission_classes = [permissions .IsAuthenticatedOrReadOnly , IsSubTopicOwner ]
147+ queryset = models .SubTopic .objects .all ()
148+ serializer_class = serializers .SubTopicSerializer
149+ permission_classes = [permissions .IsAuthenticatedOrReadOnly , IsSubTopicOwner ]
150+
151+ def post (self , request , * args , ** kwargs ):
152+ return self .create (request , * args , ** kwargs )
133153
134154
135- def post (self , request , * args , ** kwargs ):
136- return self .create (request , * args , ** kwargs )
155+ class SubTopicDetail (
156+ mixins .DestroyModelMixin , mixins .UpdateModelMixin , generics .GenericAPIView
157+ ):
158+ queryset = models .SubTopic .objects .all ()
159+ serializer_class = serializers .SubTopicSerializer
160+ permission_classes = [permissions .IsAuthenticatedOrReadOnly , IsSubTopicOwner ]
161+
162+ def delete (self , request , * args , ** kwargs ):
163+ return super ().destroy (request , * args , ** kwargs )
164+
165+ def put (self , request , * args , ** kwargs ):
166+ return self .update (request , * args , ** kwargs )
137167
138- class SubTopicDetail (mixins .DestroyModelMixin , mixins .UpdateModelMixin , generics .GenericAPIView ):
139- queryset = models .SubTopic .objects .all ()
140- serializer_class = serializers .SubTopicSerializer
141- permission_classes = [permissions .IsAuthenticatedOrReadOnly , IsSubTopicOwner ]
142168
143- def delete (self , request , * args , ** kwargs ):
144- return super ().destroy (request , * args , ** kwargs )
145-
146- def put (self , request , * args , ** kwargs ):
147- return self .update (request , * args , ** kwargs )
148-
149169class SubTopicLinkCreate (mixins .CreateModelMixin , generics .GenericAPIView ):
150170
151- queryset = models .SubTopicLink .objects .all ()
152- serializer_class = serializers .SubTopicLinkSerializer
153- permission_classes = [permissions .IsAuthenticatedOrReadOnly , IsSubTopicLinkOwner ]
171+ queryset = models .SubTopicLink .objects .all ()
172+ serializer_class = serializers .SubTopicLinkSerializer
173+ permission_classes = [permissions .IsAuthenticatedOrReadOnly , IsSubTopicLinkOwner ]
174+
175+ def post (self , request , * args , ** kwargs ):
176+ return self .create (request , * args , ** kwargs )
177+
154178
155- def post (self , request , * args , ** kwargs ):
156- return self .create (request , * args , ** kwargs )
179+ class SubTopicLinkDetail (
180+ mixins .DestroyModelMixin , mixins .UpdateModelMixin , generics .GenericAPIView
181+ ):
182+ queryset = models .SubTopicLink .objects .all ()
183+ serializer_class = serializers .SubTopicLinkSerializer
184+ permission_classes = [permissions .IsAuthenticatedOrReadOnly , IsSubTopicLinkOwner ]
157185
158- class SubTopicLinkDetail (mixins .DestroyModelMixin , mixins .UpdateModelMixin , generics .GenericAPIView ):
159- queryset = models .SubTopicLink .objects .all ()
160- serializer_class = serializers .SubTopicLinkSerializer
161- permission_classes = [permissions .IsAuthenticatedOrReadOnly , IsSubTopicLinkOwner ]
186+ def delete (self , request , * args , ** kwargs ):
187+ return super ().destroy (request , * args , ** kwargs )
162188
163- def delete (self , request , * args , ** kwargs ):
164- return super ().destroy (request , * args , ** kwargs )
165-
166- def put (self , request , * args , ** kwargs ):
167- return self .update (request , * args , ** kwargs )
189+ def put (self , request , * args , ** kwargs ):
190+ return self .update (request , * args , ** kwargs )
0 commit comments