def patch(self, request, *args, **kwargs): player = Player.objects.get(id=kwargs['pk']) query_asked = request.query_params.get('asked') query_score = request.query_params.get('score') correct_question_id = request.query_params.get('correct') incorrect_question_id = request.query_params.get('incorrect') asked = player.asked score = player.score if query_asked: player.asked = asked + 1 if query_score: try: query_score = int(query_score) except: Response(status=status.HTTP_400_BAD_REQUEST) player.score = score + query_score if correct_question_id: question = Question.objects.get(correct_question_id) player.right_questions.add(question) player.score -= int(question.value) if incorrect_question_id: question = Question.objects.get(incorrect_question_id) player.wrong_questions.add(question) player.score -= int(question.value) if query_score or query_asked or correct_question_id or incorrect_question_id: player.save() serializer = PlayerSerializer(player) return Response(serializer.data, status=status.HTTP_201_CREATED)
def create(self, request): player_json = request.data team = get_object_or_404(Team, id=player_json['team_id']) if team.game.is_complete: return Response('Game is already done', status=status.HTTP_400_BAD_REQUEST) player = Player.objects.create(team=team, name=player_json['player_name']) send_game_update(team.game.room_code) return Response(PlayerSerializer(player).data, status=status.HTTP_201_CREATED)
def create(self, request): team_json = request.data game = get_object_or_404(Game, room_code=team_json['room_code']) if game.is_complete: return Response('Game is already done', status=status.HTTP_400_BAD_REQUEST) team = Team.objects.create(game=game, name=team_json['name']) player = Player.objects.create(team=team, name=team_json['captain_name'], is_captain=True) team.refresh_from_db() send_game_update(game.room_code) return Response(PlayerSerializer(player).data, status=status.HTTP_201_CREATED)
def patch(self, request, *args, **kwargs): name = self.kwargs.get('name', None) question_id = self.kwargs.get('question_id', None) if not name or not question_id: return Response(status=status.HTTP_400_BAD_REQUEST) player = Player.objects.get(name=name) question = Question.objects.get(id=question_id) correct = request.query_params.get('correct', None) if not correct: return Response(status=status.HTTP_400_BAD_REQUEST) if correct: player.right_questions.add(question) else: player.wrong_questions.add(question) player.save() serializer = PlayerSerializer(player) return Response(serializer.data, status=status.HTTP_201_CREATED)
def get(self, request, *args, **kwargs): player = Player.objects.get(name=kwargs.get('name')) serializer = PlayerSerializer(player) return Response(serializer.data, status=status.HTTP_200_OK)