Esempio n. 1
0
def game_detail(request, pk):
    try:
        game = Game.objects.get(pk=pk)
    except Game.DoesNotExist:
        return Response(status=status.HTTP_404_NOT_FOUND)

    games = Game.objects.all()
    games_serializer = GameSerializer(games, many=True)
    tam = len(games_serializer.data)

    nomes = []
    i = tam - 1
    for nome in games_serializer.data:
        nome = games_serializer.data[i]['name']
        nomes.append(nome)
        i = i - 1

    if request.method == 'GET':
        game_serializer = GameSerializer(game)
        return Response(game_serializer.data)
    elif request.method == 'PUT':
        game_serializer = GameSerializer(game, data=request.data)
        if game_serializer.is_valid():
            if (game_serializer.validated_data['name'] in nomes):
                return Response("Já existe jogo com esse nome!")
            game_serializer.save()
            return Response(game_serializer.data)
        return Response(game_serializer.errors,
                        status=status.HTTP_400_BAD_REQUEST)
    elif request.method == 'DELETE':
        if game.played == True:
            return Response("O jogo não pode ser excluído!")
        game.delete()
        return Response(status=status.HTTP_204_NO_CONTENT)
Esempio n. 2
0
def game_detail(request, pk):
    try:  # Read, Update, Delete 객체를 선택한다
        game = Game.objects.get(pk=pk)
    except Game.DoseNotExist:  # DB에 객체가 없는 경우
        # return HttpResponse(status=status.HTTP_404_NOT_FOUND)
        return Response(status=status.HTTP_404_NOT_FOUND)

    if request.method == 'GET':  # Get 방식은 DB를 읽는다
        games_serializer = GameSerializer(game)  # game 모든 객체를 직렬화
        # return JSONResponse(games_serializer.data)  # 직렬화 객체를 JSON으로 출력
        return Response(games_serializer.data)

    elif request.method == 'PUT':
        # game_data = JSONParser().parse(request)
        # games_serializer = GameSerializer(game, data=game_data)
        games_serializer = GameSerializer(game,
                                          data=request.data)  # 위 2줄을 1줄로 대체

        if games_serializer.is_valid():
            games_serializer.save()
            # return JSONResponse(games_serializer.data)
            return Response(games_serializer.data)
        # return JSONResponse(games_serializer.errors, status=status.HTTP_400_BAD_REQUEST)
        return Response(games_serializer.errors,
                        status=status.HTTP_400_BAD_REQUEST)

    elif request.method == 'DELETE':
        game.delete()
        # return HttpResponse(status=status.HTTP_204_NO_CONTENT)
        return Response(status=status.HTTP_204_NO_CONTENT)
Esempio n. 3
0
def game_detail(request,pk):

        try:
            game = Game.objects.get(pk = pk)
        except Game.DoesNotExist:
            return HttpResponse(status = status.HTTP_404_NOT_FOUND)

        if request.method == 'GET':
            game_serializer = GameSerializer(game)
            return JSONResponse(game_serializer.data)

        elif request.method == 'POST':
            game_data = JSONParser().parse(game)
            game_serializer = GameSerializer(game, data = game_data)

            if game_serializer.is_valid():
                game_serializer.save()
                return JSONResponse(game_serializer.data)

            return JSONResponse(game_serializer.errors, status= status.HTTP_400_BAD_REQUEST)


        elif request.method == 'DELETE':
                game.delete()

        return HttpResponse(status = status.HTTP_204_NO_CONTENT)
Esempio n. 4
0
def game_list(request):

    games = Game.objects.all()
    games_serializer = GameSerializer(games, many=True)
    tam = len(games_serializer.data)

    nomes = []
    i = tam - 1
    for nome in games_serializer.data:
        nome = games_serializer.data[i]['name']
        nomes.append(nome)
        i = i - 1

    if request.method == 'GET':

        return Response(games_serializer.data)
    elif request.method == 'POST':
        game_serializer = GameSerializer(data=request.data)
        if game_serializer.is_valid():
            if (game_serializer.validated_data['name'] in nomes):
                return Response("O Jogo já existe!")

            game_serializer.save()
            return Response(game_serializer.validated_data,
                            status=status.HTTP_201_CREATED)
        return Response(game_serializer.errors,
                        status=status.HTTP_400_BAD_REQUEST)
Esempio n. 5
0
def game_detail(request, pk):
    try:
        game = Game.objects.get(pk=pk)
    except Game.DoesNotExist:
        # return HttpResponse(status=status.HTTP_404_NOT_FOUND)
        return Response(status=status.HTTP_404_NOT_FOUND)

    if request.method == 'GET':
        game_serialized = GameSerializer(game)
        # return JsonResponse(game_serialized.data)
        return Response(game_serialized.data)
    elif request.method == 'PUT':
        # game_data = JSONParser().parse(request)
        game_serializer = GameSerializer(game, data=request.data)
        if game_serializer.is_valid:
            game_serializer.save()
            # return JsonResponse(game_serializer.data)
            return Response(game_serializer.data)
        else:
            # return JsonResponse(game_serializer.errors,
            #                     status=status.HTTP_400_BAD_REQUEST)
            return Response(game_serializer.errors,
                            status=status.HTTP_400_BAD_REQUEST)
    elif request.method == 'DELETE':
        game.delete()
        # return HttpResponse(status=status.HTTP_204_NO_CONTENT)
        return Response(status=status.HTTP_204_NO_CONTENT)
Esempio n. 6
0
def game_list(request):
    if request.method == 'GET':
        games = Game.objects.all()
        game_serializer = GameSerializer(games, many=True)
        return Response(game_serializer.data)

    elif request.method == 'POST':
        game_serializer = GameSerializer(data=request.data)
        if game_serializer.is_valid():
            game_serializer.save()
            return Response(game_serializer.data, status=status.HTTP_201_CREATED)
        return Response(game_serializer.errors, status=status.HTTP_400_BAD_REQUEST)
Esempio n. 7
0
def game_list(request):
    if request.method == 'GET':
        games = Game.objects.all()
        games_serializer = GameSerializer(games, many=True)
        return JSONResponse(games_serializer.data)

    elif request.method == 'POST':
        game_data = JSONParser().parse(request)
        games_serializer = GameSerializer(data=game_data)
        if games_serializer.is_valid():
            games_serializer.save()
            return JSONResponse(games_serializer.data,
                                status=status.HTTP_201_CREATED)
Esempio n. 8
0
def game_list(request):
    if request.method == 'GET':
        games = Game.objects.all()
        games_serializer = GameSerializer(games, many=True)
        return JSONResponse(games_serializer.data)

    elif request.method == 'POST':
        game_data = JSONParser().parse(request)
        game_serializer = GameSerializer(data=game_data)
        if game_serializer.is_valid():
            game_serializer.save()
            return JSONResponse(game_serializer.data, status=status.HTTP_201_CREATED)
        return JSONResponse(game_serializer.errors, status=status.HTTP_400_BAD_REQUEST)
 def handle(self, *args, **kwargs):
     file_name = kwargs['file']
     file_path = os.path.join(getattr(settings, "GAMES_CSV_PATH"), file_name)
     cnt = 0
     with open(file_path, 'r') as file:
         for row in csv.DictReader(file):
             if not row['genre'].strip():
                 row['genre'] = 'null'
             serialized_data = GameSerializer(data=row)
             if serialized_data.is_valid():
                 # save if the data has no errors
                 serialized_data.save()
                 cnt += 1
             else:
                 raise ValueError("File contains invalid record.")
     self.stdout.write(f"Successfully uploaded {cnt} records from {file_name}.")
Esempio n. 10
0
def game_list(request):
    if request.method == 'GET':
        games = Game.objects.all()
        # many=True specifies that many instances have to be serialized, not just one
        games_serializer = GameSerializer(games, many=True)
        return JSONResponse(games_serializer.data)

    elif request.method == 'POST':
        game_data = JSONParser().parse(request)
        game_serializer = GameSerializer(data=game_data)
        if game_serializer.is_valid():
            game_serializer.save()
            return JSONResponse(game_serializer.data,
                                status=status.HTTP_201_CREATED)
        return JSONResponse(game_serializer.errors,
                            status=status.HTTP_400_BAD_REQUEST)
Esempio n. 11
0
def games_list(request):
    """
    List all code snippets, or create a new snippet.
    """
    if request.method == 'GET':
        games = Game.objects.all()
        serializer = GameSerializer(games, many=True)
        return JSONResponse(serializer.data)

    elif request.method == 'POST':
        data = JSONParser().parse(request)
        serializer = GameSerializer(data=data)
        if serializer.is_valid():
            serializer.save()
            return JSONResponse(serializer.data, status=201)
        return JSONResponse(serializer.errors, status=400)
Esempio n. 12
0
    def game_collection(self, request):
        if request.method == 'GET':

            games = Game.objects.all()
            game_serializer = GameSerializer(games, many=True)

            return JSONResponse(game_serializer.data)

        elif request.method == 'POST':
            game_data = JSONParser().parse(request)
            game_serializer = GameSerializer(data=game_data)
            if game_serializer.is_valid():

                game_serializer.save()
                return JSONResponse(game_serializer.data,
                                    status=status.HTTP_201_CREATED)
            return JSONResponse(game_serializer.errors,
                                status=status.HTTP_400_BAD_REQUEST)
Esempio n. 13
0
def game_list(request):
    if request.method == 'GET':
        games = Game.objects.all()
        games_serializer = GameSerializer(games, many=True)
        return Response(games_serializer.data)
    elif request.method == 'POST':
        game_serializer = GameSerializer(data=request.data)
        if game_serializer.is_valid():
            try:
                games = Game.objects.get(name=request.data['name'])
                if bool(games):
                    return Response(
                        {"name": "game already exists in the database"},
                        status=status.HTTP_400_BAD_REQUEST)
            except:
                game_serializer.save()
                return Response(game_serializer.data,
                                status=status.HTTP_201_CREATED)
        return Response(game_serializer.errors,
                        status=status.HTTP_400_BAD_REQUEST)
Esempio n. 14
0
def game_list(request):
    if request.method == 'GET':  # 데이터 조회
        games = Game.objects.all()
        games_serializer = GameSerializer(games, many=True)
        # return JSONResponse(games_serializer.data)
        return Response(games_serializer.data)

    elif request.method == 'POST':  # 데이터 생성
        # game_data = JSONParser().parse(request)
        # games_serializer = GameSerializer(data = game_data)
        games_serializer = GameSerializer(data=request.data)  # 위 2줄을 1줄로 대체
        if games_serializer.is_valid():
            games_serializer.save()
            # Http 200 : 정상처리
            # return JSONResponse(games_serializer.data, status=status.HTTP_201_CREATED)
            return Response(games_serializer.data,
                            status=status.HTTP_201_CREATED)
        # Http 400 : 정의되지 않은 작업
        # return JSONResponse(games_serializer.errors, status=status.HTTP_400_BAD_REQUEST)
        return Response(games_serializer.errors,
                        status=status.HTTP_404_BAD_REQUEST)
Esempio n. 15
0
def game_list(request):
    games = Game.objects.all()

    if request.method == 'GET':
        game_serializer = GameSerializer(games, many=True)
        return Response(game_serializer.data)

    elif request.method == 'POST':
        game_serializer = GameSerializer(data=request.data)
        game_listed = list_games(GameSerializer(games, many=True).data)

        if game_serializer.is_valid():
            name = request.data['name']
            if name in game_listed:
                return Response(game_serializer.errors,
                                status=status.HTTP_409_CONFLICT)
            else:
                game_serializer.save()
                return Response(game_serializer.data,
                                status=status.HTTP_201_CREATED)
        return Response(game_serializer.errors,
                        status=status.HTTP_400_BAD_REQUEST)
Esempio n. 16
0
def game_list(request):
    if request.method == 'GET':
        games = Game.objects.all()
        games_serializer = GameSerializer(games, many=True)
        return Response(games_serializer.data)

    elif request.method == 'POST':
        games_serializer = GameSerializer(data=request.data)
        if games_serializer.is_valid():
            data = games_serializer.validated_data
            exists = Game.objects.filter(name=data['name'])

            if exists:
                return Response(
                    {'detail': 'The name of this game already exists'},
                    status=status.HTTP_400_BAD_REQUEST)

            games_serializer.save()
            return Response(games_serializer.data,
                            status=status.HTTP_201_CREATED)
        return Response(games_serializer.errors,
                        status=status.HTTP_400_BAD_REQUEST)
Esempio n. 17
0
def game_detail(request, pk):
    try:
        game = Game.objects.get(id=pk)
    except:
        return Response(status=status.HTTP_404_NOT_FOUND)

    if request.method == "GET":
        game_serializer = GameSerializer(game)
        return Response(game_serializer.data, status=status.HTTP_200_OK)
    elif request.method == "PUT":
        game_serializer = GameSerializer(game, data=request.data)
        if game_serializer.is_valid():
            try:
                games = Game.objects.filter(name=request.data['name'])
                if not game in games:
                    return Response(
                        {"name": "game already exists in the database"},
                        status=status.HTTP_400_BAD_REQUEST)
                else:
                    game_serializer.save()
                    return Response(game_serializer.data)
            except:
                game_serializer.save()
                return Response(game_serializer.data)
        return Response(game_serializer.errors,
                        status=status.HTTP_400_BAD_REQUEST)
    elif request.method == "DELETE":
        utc = pytz.UTC
        date2 = utc.localize(datetime.now())
        print(date2)
        # date1 = utc.localize(game.release_date)
        # print(date1)
        if game.release_date > date2:
            game.delete()
            return Response(status=status.HTTP_204_NO_CONTENT)
        return Response({"date_release": "Game has been released"},
                        status=status.HTTP_401_UNAUTHORIZED)
Esempio n. 18
0
def game_detail(request, pk):
    try:
        game = Game.objects.get(pk=pk)
    except Game.DoesNotExist:
        return Response(status=status.HTTP_404_NOT_FOUND)

    if request.method == 'GET':
        game_serializer = GameSerializer(game)
        return Response(game_serializer.data)

    elif request.method == 'PUT':
        game_serializer = GameSerializer(game, data=request.data)
        games = Game.objects.all()
        game_listed = list_games(GameSerializer(games, many=True).data)

        if game_serializer.is_valid():
            name = request.data['nome']
            if name in game_listed:
                return Response(game_serializer.errors,
                                status=status.HTTP_304_NOT_MODIFIED)
            else:
                game_serializer.save()
                return Response(game_serializer.data,
                                status=status.HTTP_200_OK)
        return Response(game_serializer.errors,
                        status=status.HTTP_400_BAD_REQUEST)

    elif request.method == 'DELETE':
        current_date = date.today()
        game_date = game.release_date

        if current_date > game_date:
            return Response(status=status.HTTP_204_NO_CONTENT)
        else:
            game.delete()
            return Response(status=status.HTTP_410_GONE)
        return Response(status=status.HTTP_204_NO_CONTENT)
Esempio n. 19
0
def game_detail(request, pk):
    """
    Retrieve, update or delete a code snippet.
    """
    try:
        game = Game.objects.get(pk=pk)
    except Game.DoesNotExist:
        return HttpResponse(status=404)

    if request.method == 'GET':
        serializer = GameSerializer(game)
        return JSONResponse(serializer.data)

    elif request.method == 'PUT':
        data = JSONParser().parse(request)
        serializer = GameSerializer(game, data=data)
        if serializer.is_valid():
            serializer.save()
            return JSONResponse(serializer.data)
        return JSONResponse(serializer.errors, status=400)

    elif request.method == 'DELETE':
        game.delete()
        return HttpResponse(status=204)
Esempio n. 20
0
def game_detail(request, pk):
    game = get_object_or_404(Game, pk=pk)

    if request.method == 'GET':
        games_serializer = GameSerializer(game)
        return Response(games_serializer.data)

    elif request.method == 'PUT':
        games_serializer = GameSerializer(game, data=request.data)
        if games_serializer.is_valid():
            data = games_serializer.validated_data
            exists = Game.objects.filter(name=data['name']).exclude(
                name=game.pk)

            if exists:
                return Response(
                    {'detail': 'The name of this game already exists'},
                    status=status.HTTP_400_BAD_REQUEST)

            games_serializer.save()
            return Response(games_serializer.data)
        return Response(games_serializer.errors,
                        status=status.HTTP_400_BAD_REQUEST)

    elif request.method == 'DELETE':
        now_aware = timezone.make_aware(datetime.now())
        if game.release_date < now_aware:
            return Response(
                {
                    'detail':
                    ("A game that has already been released can't be deleted."
                     + f" This game was released in {game.release_date}")
                },
                status=status.HTTP_400_BAD_REQUEST)
        game.delete()
        return Response(status=status.HTTP_204_NO_CONTENT)
Esempio n. 21
0
print(game1.pk)
print(game1.name)
print(game1.created)
print(game2.pk)
print(game2.name)
print(game2.created)

game_serializer1 = GameSerializer(game1)
print(game_serializer1.data)

game_serializer2 = GameSerializer(game2)
print(game_serializer2.data)

renderer = JSONRenderer()
rendered_game1 = renderer.render(game_serializer1.data)
rendered_game2 = renderer.render(game_serializer2.data)
print(rendered_game1)
print(rendered_game2)

json_string_for_new_game = '{"name":"Tomb Raider Extreme Edition","release_date":"2016-05-18T03:02:00.776594Z","game_category":"3D RPG","played":false}'
json_bytes_for_new_game = bytes(json_string_for_new_game json_game_string  , encoding="UTF-8")
stream_for_new_game = BytesIO(json_bytes_for_new_game)
parser = JSONParser()
parsed_new_game = parser.parse(stream_for_new_game)
print(parsed_new_game)

new_game_serializer = GameSerializer(data=parsed_new_game)
if new_game_serializer.is_valid():
    new_game = new_game_serializer.save()
    print(new_game.name)