Skip to content

Commit b953281

Browse files
🎨 Format Python code with psf/black
1 parent 41fef3b commit b953281

File tree

10 files changed

+298
-180
lines changed

10 files changed

+298
-180
lines changed

api/views.py

Lines changed: 123 additions & 106 deletions
Original file line numberDiff line numberDiff line change
@@ -4,164 +4,181 @@
44

55
from . import serializers
66
from . 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

915
from rest_framework.decorators import api_view
1016
from rest_framework.response import Response
1117
from rest_framework.reverse import reverse
1218

1319

14-
@api_view(['GET'])
20+
@api_view(["GET"])
1521
def 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):
41-
42-
queryset = models.Curation.objects.all()
43-
serializer_class = serializers.CurationSerializer
44-
permission_classes = [permissions.IsAuthenticatedOrReadOnly, IsCurationOwner]
46+
class CurationList(
47+
mixins.ListModelMixin, mixins.CreateModelMixin, generics.GenericAPIView
48+
):
49+
queryset = models.Curation.objects.all()
50+
serializer_class = serializers.CurationSerializer
51+
permission_classes = [permissions.IsAuthenticatedOrReadOnly, IsCurationOwner]
52+
53+
def get_queryset(self):
54+
"""
55+
Optionally restricts the returned purchases to a given user,
56+
by filtering against a `username` query parameter in the URL.
57+
"""
58+
queryset = models.Curation.objects.all()
59+
subject = self.request.query_params.get("subject")
60+
if subject is not None:
61+
queryset = queryset.filter(subject=subject)
62+
return queryset
63+
64+
def post(self, request, *args, **kwargs):
65+
return self.create(request, *args, **kwargs)
4566

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
67+
def get(self, request, *args, **kwargs):
68+
return self.list(request, *args, **kwargs)
5669

57-
def post(self, request, *args, **kwargs):
58-
return self.create(request, *args, **kwargs)
70+
def perform_create(self, serializer):
71+
serializer.save(owner=self.request.user)
5972

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)
6573

74+
class CurationDetail(
75+
mixins.RetrieveModelMixin,
76+
mixins.DestroyModelMixin,
77+
mixins.UpdateModelMixin,
78+
generics.GenericAPIView,
79+
):
80+
queryset = models.Curation.objects.all()
81+
serializer_class = serializers.CurationSerializer
6682

67-
class CurationDetail(mixins.RetrieveModelMixin,
68-
mixins.DestroyModelMixin,
69-
mixins.UpdateModelMixin,
70-
generics.GenericAPIView):
83+
permission_classes = [permissions.IsAuthenticatedOrReadOnly, IsCurationOwner]
7184

72-
queryset = models.Curation.objects.all()
73-
serializer_class = serializers.CurationSerializer
85+
def get(self, request, *args, **kwargs):
86+
return self.retrieve(request, *args, **kwargs)
7487

75-
permission_classes = [permissions.IsAuthenticatedOrReadOnly, IsCurationOwner]
88+
def put(self, request, *args, **kwargs):
89+
return self.update(request, *args, **kwargs)
7690

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)
91+
def delete(self, request, *args, **kwargs):
92+
return super().destroy(request, *args, **kwargs)
8593

8694

8795
class TopicCreate(mixins.CreateModelMixin, generics.GenericAPIView):
96+
queryset = models.Topic.objects.all()
97+
serializer_class = serializers.TopicSerializer
98+
permission_classes = [permissions.IsAuthenticatedOrReadOnly, IsTopicOwner]
99+
100+
def post(self, request, *args, **kwargs):
101+
return self.create(request, *args, **kwargs)
88102

89-
queryset = models.Topic.objects.all()
90-
serializer_class = serializers.TopicSerializer
91-
permission_classes = [permissions.IsAuthenticatedOrReadOnly, IsTopicOwner]
92103

93-
def post(self, request, *args, **kwargs):
94-
return self.create(request, *args, **kwargs)
104+
class TopicDetail(
105+
mixins.DestroyModelMixin, mixins.UpdateModelMixin, generics.GenericAPIView
106+
):
107+
queryset = models.Topic.objects.all()
108+
serializer_class = serializers.TopicSerializer
109+
permission_classes = [permissions.IsAuthenticatedOrReadOnly, IsTopicOwner]
95110

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]
111+
def delete(self, request, *args, **kwargs):
112+
return super().destroy(request, *args, **kwargs)
100113

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)
114+
def put(self, request, *args, **kwargs):
115+
return self.update(request, *args, **kwargs)
106116

107117

108118
class LinkCreate(mixins.CreateModelMixin, generics.GenericAPIView):
119+
queryset = models.Link.objects.all()
120+
serializer_class = serializers.LinkSerializer
121+
permission_classes = [permissions.IsAuthenticatedOrReadOnly, IsLinkOwner]
122+
123+
def post(self, request, *args, **kwargs):
124+
return self.create(request, *args, **kwargs)
109125

110-
queryset = models.Link.objects.all()
111-
serializer_class = serializers.LinkSerializer
112-
permission_classes = [permissions.IsAuthenticatedOrReadOnly, IsLinkOwner]
113126

114-
def post(self, request, *args, **kwargs):
115-
return self.create(request, *args, **kwargs)
127+
class LinkDetail(
128+
mixins.DestroyModelMixin, mixins.UpdateModelMixin, generics.GenericAPIView
129+
):
130+
queryset = models.Link.objects.all()
131+
serializer_class = serializers.LinkSerializer
132+
permission_classes = [permissions.IsAuthenticatedOrReadOnly, IsLinkOwner]
116133

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]
134+
def delete(self, request, *args, **kwargs):
135+
return super().destroy(request, *args, **kwargs)
136+
137+
def put(self, request, *args, **kwargs):
138+
return self.update(request, *args, **kwargs)
121139

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)
127140

128141
class SubTopicCreate(mixins.CreateModelMixin, generics.GenericAPIView):
142+
queryset = models.SubTopic.objects.all()
143+
serializer_class = serializers.SubTopicSerializer
144+
permission_classes = [permissions.IsAuthenticatedOrReadOnly, IsSubTopicOwner]
145+
146+
def post(self, request, *args, **kwargs):
147+
return self.create(request, *args, **kwargs)
148+
129149

130-
queryset = models.SubTopic.objects.all()
131-
serializer_class = serializers.SubTopicSerializer
132-
permission_classes = [permissions.IsAuthenticatedOrReadOnly, IsSubTopicOwner]
150+
class SubTopicDetail(
151+
mixins.DestroyModelMixin, mixins.UpdateModelMixin, generics.GenericAPIView
152+
):
153+
queryset = models.SubTopic.objects.all()
154+
serializer_class = serializers.SubTopicSerializer
155+
permission_classes = [permissions.IsAuthenticatedOrReadOnly, IsSubTopicOwner]
133156

157+
def delete(self, request, *args, **kwargs):
158+
return super().destroy(request, *args, **kwargs)
134159

135-
def post(self, request, *args, **kwargs):
136-
return self.create(request, *args, **kwargs)
160+
def put(self, request, *args, **kwargs):
161+
return self.update(request, *args, **kwargs)
137162

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]
142163

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-
149164
class SubTopicLinkCreate(mixins.CreateModelMixin, generics.GenericAPIView):
165+
queryset = models.SubTopicLink.objects.all()
166+
serializer_class = serializers.SubTopicLinkSerializer
167+
permission_classes = [permissions.IsAuthenticatedOrReadOnly, IsSubTopicLinkOwner]
168+
169+
def post(self, request, *args, **kwargs):
170+
return self.create(request, *args, **kwargs)
150171

151-
queryset = models.SubTopicLink.objects.all()
152-
serializer_class = serializers.SubTopicLinkSerializer
153-
permission_classes = [permissions.IsAuthenticatedOrReadOnly, IsSubTopicLinkOwner]
154172

155-
def post(self, request, *args, **kwargs):
156-
return self.create(request, *args, **kwargs)
173+
class SubTopicLinkDetail(
174+
mixins.DestroyModelMixin, mixins.UpdateModelMixin, generics.GenericAPIView
175+
):
176+
queryset = models.SubTopicLink.objects.all()
177+
serializer_class = serializers.SubTopicLinkSerializer
178+
permission_classes = [permissions.IsAuthenticatedOrReadOnly, IsSubTopicLinkOwner]
157179

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]
180+
def delete(self, request, *args, **kwargs):
181+
return super().destroy(request, *args, **kwargs)
162182

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)
183+
def put(self, request, *args, **kwargs):
184+
return self.update(request, *args, **kwargs)

0 commit comments

Comments
 (0)