7
7
from blog .serializers import *
8
8
# Create your views here.
9
9
10
+
11
+ @api_view (['GET' , 'POST' ])
12
+ def custom_user_list (request , format = None ):
13
+ """
14
+ list all users or create one.
15
+ """
16
+ if request .method == 'GET' :
17
+ users = CustomUser .objects .all ()
18
+ serializer = CustomUserSerializer (users , many = True )
19
+ return Response (serializer .data )
20
+
21
+ elif request .method == 'POST' :
22
+ serializer = CustomUserSerializer (data = request .data )
23
+ if serializer .is_valid ():
24
+ serializer .save ()
25
+ return Response (serializer .data , status = status .HTTP_201_CREATED )
26
+ return Response (serializer .errors , status = status .HTTP_400_BAD_REQUEST )
27
+
28
+
29
+ @api_view (['GET' , 'PUT' , 'DELETE' ])
30
+ def custom_user_detail (request , pk , format = None ):
31
+ '''
32
+ Retrieve or update or delete a user.
33
+ '''
34
+ try :
35
+ user = CustomUser .objects .get (pk = pk )
36
+ except CustomUser .DoesNotExist :
37
+ return Response (status = status .HTTP_404_NOT_FOUND )
38
+
39
+ if request .method == 'GET' :
40
+ serializer = CustomUserSerializer (user )
41
+ return Response (serializer .data )
42
+
43
+ elif request .method == 'PUT' :
44
+ serializer = CustomUserSerializer (user , data = request .data )
45
+ if serializer .is_valid ():
46
+ serializer .save ()
47
+ return Response (serializer .data )
48
+ return Response (serializer .errors , status = status .HTTP_400_BAD_REQUEST )
49
+
50
+ elif request .method == 'DELETE' :
51
+ user .delete ()
52
+ return Response (status = status .HTTP_204_NO_CONTENT )
53
+
10
54
@api_view (['GET' , 'POST' ])
11
55
def tag_list (request , format = None ):
12
56
"""
@@ -118,7 +162,7 @@ def post_list(request, format=None):
118
162
@api_view (['GET' , 'PUT' , 'DELETE' ])
119
163
def post_detail (request , pk , format = None ):
120
164
"""
121
- Retrieve, update of delete a post.
165
+ Retrieve, update or delete a post.
122
166
"""
123
167
try :
124
168
post = Post .objects .get (pk = pk )
@@ -140,3 +184,90 @@ def post_detail(request, pk, format=None):
140
184
post .delete ()
141
185
return Response (status = status .HTTP_204_NO_CONTENT )
142
186
187
+
188
+ @api_view (['GET' , 'POST' ])
189
+ def comment_list (request , format = None ):
190
+ """
191
+ list all comments or create one.
192
+ """
193
+ if request .method == 'GET' :
194
+ comments = Comment .objects .all ()
195
+ serializer = CommentSerializerList (comments , many = True )
196
+ return Response (serializer .data )
197
+
198
+ elif request .method == 'POST' :
199
+ serializer = CommentSerializerList (data = request .data )
200
+ if serializer .is_valid ():
201
+ serializer .save ()
202
+ return Response (serializer .data , status = status .HTTP_201_CREATED )
203
+ return Response (serializer .errors , status = status .HTTP_400_BAD_REQUEST )
204
+
205
+ @api_view (['GET' , 'PUT' , 'DELETE' ])
206
+ def comment_detail (request , pk , format = None ):
207
+ """
208
+ Retrieve, update or delete a comment.
209
+ """
210
+ try :
211
+ comment = Comment .objects .get (pk = pk )
212
+ except Comment .DoesNotExist :
213
+ return Response (status = status .HTTP_404_NOT_FOUND )
214
+
215
+ if request .method == "GET" :
216
+ serializer = CommentSerializerDetail (comment )
217
+ return Response (serializer .data )
218
+
219
+ elif request .method == "PUT" :
220
+ serializer = CommentSerializerDetail (comment , data = request .data )
221
+ if serializer .is_valid ():
222
+ serializer .save ()
223
+ return Response (serializer .data )
224
+ return Response (serializer .errors , status = status .HTTP_400_BAD_REQUEST )
225
+
226
+ elif request .method == "DELETE" :
227
+ comment .delete ()
228
+ return Response (status = status .HTTP_404_NOT_FOUND )
229
+
230
+
231
+ @api_view (['GET' , 'POST' ])
232
+ def like_list (request , format = None ):
233
+ """
234
+ list all likes or create one.
235
+ """
236
+
237
+ if request .method == "GET" :
238
+ likes = Like .objects .all ()
239
+ serializer = LikeSerializer (likes , many = True )
240
+ return Response (serializer .data )
241
+
242
+ elif request .method == 'POST' :
243
+ serializer = LikeSerializer (data = request .data )
244
+ if serializer .is_valid ():
245
+ serializer .save ()
246
+ return Response (serializer .data , status = status .HTTP_201_CREATED )
247
+ return Response (serializer .errors , status = status .HTTP_400_BAD_REQUEST )
248
+
249
+
250
+ @api_view (['GET' , "PUT" , 'DELETE' ])
251
+ def like_detail (request , pk , format = None ):
252
+ """
253
+ Retrieve, update or delete a like.
254
+ """
255
+ try :
256
+ like = Like .objects .get (pk = pk )
257
+ except Like .DoesNotExist :
258
+ return Response (status = status .HTTP_404_NOT_FOUND )
259
+
260
+ if request .method == 'GET' :
261
+ serializer = LikeSerializer (like )
262
+ return Response (serializer .data )
263
+
264
+ elif request .method == 'PUT' :
265
+ serializer = LikeSerializer (like , data = request .data )
266
+ if serializer .is_valid ():
267
+ serializer .save ()
268
+ return Response (serializer .data )
269
+ return Response (serializer .errors , status = status .HTTP_400_BAD_REQUEST )
270
+
271
+ elif request .method == 'DELETE' :
272
+ like .delete ()
273
+ return Response (status = status .HTTP_404_NOT_FOUND )
0 commit comments