예제 #1
0
 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)
예제 #2
0
    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)
예제 #3
0
    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)
예제 #4
0
    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)
예제 #5
0
 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)