Skip to content

Commit c3f0df9

Browse files
committed
edit & delete messages
1 parent 067bfcf commit c3f0df9

File tree

2 files changed

+34
-0
lines changed

2 files changed

+34
-0
lines changed

classroom/urls.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,5 +14,7 @@
1414
path('channel/delete/<int:id>', views.DeleteChannelView.as_view(), name='channel_remove_classroom'),
1515

1616
path('messages/', views.GetChannelMessagesView.as_view(), name='messages_classroom'),
17+
path('message/edit/<int:id>', views.UpdateMessageView.as_view(), name='message_edit_classroom'),
18+
path('message/delete/<int:id>', views.DeleteMessageView.as_view(), name='message_remove_classroom'),
1719
# path('<slug:code>/<slug:channel>', views.classroom, name='classroom'),
1820
]

classroom/views.py

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -132,3 +132,35 @@ def delete(self, request, id):
132132
except Channel.DoesNotExist:
133133
return Response(status=status.HTTP_404_NOT_FOUND)
134134
return Response(json.dumps(channel), content_type='application/json', status=status.HTTP_201_CREATED)
135+
136+
137+
class UpdateMessageView(generics.UpdateAPIView):
138+
queryset = Message.objects.all()
139+
permission_classes = [IsAuthenticated]
140+
serializer_class = MessageSerializer
141+
lookup_field = 'id'
142+
143+
def update(self, request, *args, **kwargs):
144+
instance = self.get_object()
145+
146+
newMessage = json.loads(request.data.get('message'))
147+
newMessage['edited'] = True
148+
149+
serializer = self.get_serializer(instance, data=newMessage, partial=True)
150+
if serializer.is_valid():
151+
serializer.save()
152+
return Response(serializer.data, status=status.HTTP_201_CREATED)
153+
else:
154+
return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
155+
156+
157+
class DeleteMessageView(views.APIView):
158+
permission_classes = [IsAuthenticated]
159+
160+
def delete(self, request, id):
161+
user: ManthanoUser = request.user
162+
try:
163+
message = Message.objects.get(id=id).delete()
164+
except Channel.DoesNotExist:
165+
return Response(status=status.HTTP_404_NOT_FOUND)
166+
return Response(json.dumps(message), content_type='application/json', status=status.HTTP_201_CREATED)

0 commit comments

Comments
 (0)