def room_list(request): """ List all code rooms, or create a new room. """ if request.method == 'GET': rooms = Room.objects.all() serializer = RoomSerializer(rooms, many=True) return Response(serializer.data) elif request.method == 'POST': data = JSONParser().parse(request) serializer = RoomSerializer(data=data) if serializer.is_valid(): serializer.save() return Response(serializer.data, status=status.HTTP_201_CREATED) return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
def room_detail(request, pk): """ Retrieve, update or delete a code room. """ try: room = Room.objects.get(pk=pk) except Room.DoesNotExist: return Response(status=status.HTTP_404_NOT_FOUND) if request.method == 'GET': serializer = RoomSerializer(room) return Response(serializer.data) elif request.method == 'PUT': data = JSONParser().parse(request) serializer = RoomSerializer(room, data=data) if serializer.is_valid(): serializer.save() return Response(serializer.data) return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST) elif request.method == 'DELETE': room.delete() return Response(status=status.HTTP_204_NO_CONTENT)