Exemplo n.º 1
0
    def post(self, request):
        body = request.body

        if not body.decode('UTF-8'):
            return Response(status=status.HTTP_400_BAD_REQUEST)

        body = json.loads(body)

        host_uuid = body.get("host_uuid")
        if not host_uuid:
            return Response("host_uuid field is needed", status=status.HTTP_400_BAD_REQUEST)
        host = get_object_or_404(User, id=host_uuid)

        quiz_uuid = body.get("quiz_uuid")
        if not quiz_uuid:
            return Response("quiz_uuid field is needed", status=status.HTTP_400_BAD_REQUEST)
        quiz = get_object_or_404(Quiz, uuid=quiz_uuid)

        game_name = body.get("game_name")
        if not game_name:
            return Response("game_name field is needed", status=status.HTTP_400_BAD_REQUEST)
        name_taken = Game.objects.filter(game_name=game_name)
        if name_taken:
            return Response("Name is taken, choose a new name", status=status.HTTP_400_BAD_REQUEST)

        new_game = Game(game_name=game_name, host=host, quiz=quiz)
        new_game.save()
        new_game.init_game()
        return Response(GameSerializer(new_game).data, status=status.HTTP_201_CREATED)