completed ch. 6

This commit is contained in:
2022-02-09 14:10:33 -06:00
parent 4f8d7f6575
commit ccb6bcae1a
6 changed files with 55 additions and 28 deletions
+2
View File
@@ -30,8 +30,10 @@ router.register(r'events', EventView, 'event')
urlpatterns = [
path('register', register_user),
path('login', login_user),
path('api-auth', include('rest_framework.urls', namespace='rest_framework')),
path('', include(router.urls)),
path('admin/', admin.site.urls),
]
+2 -4
View File
@@ -1,4 +1,2 @@
SELECT * FROM auth_user;
SELECT * FROM authtoken_token;
SELECT * FROM levelupapi_gamer;
UPDATE levelupapi_game SET game_type_id = 3
WHERE title = 'World of Warcraft';
+1 -1
View File
@@ -13,7 +13,7 @@
},
{
"model": "levelupapi.game",
"pk": 2,
"pk": 3,
"fields": {
"game_type": 2,
"title": "World of Warcraft",
+16 -6
View File
@@ -14,9 +14,13 @@ class EventView(ViewSet):
Returns:
Response -- JSON serialized event type
"""
event = Event.objects.get(pk=pk)
serializer = EventSerializer(event)
return Response(serializer.data)
try:
game_type = Event.objects.get(pk=pk)
serializer = EventSerializer(game_type)
return Response(serializer.data)
except Event.DoesNotExist as ex:
return Response({'message': ex.args[0]}, status=status.HTTP_404_NOT_FOUND)
def list(self, request):
@@ -25,8 +29,13 @@ class EventView(ViewSet):
Returns:
Response -- JSON serialized list of event types
"""
event = Event.objects.all()
serializer = EventSerializer(event, many=True)
events = Event.objects.all()
# Add in the next 3 lines
game = request.query_params.get('game_id', None)
if game is not None:
events = events.filter(game_id=game)
serializer = EventSerializer(events, many=True)
return Response(serializer.data)
class EventSerializer(serializers.ModelSerializer):
@@ -34,4 +43,5 @@ class EventSerializer(serializers.ModelSerializer):
"""
class Meta:
model = Event
fields = ('id', 'description', 'date', 'time', 'game_id', 'organizer_id')
fields = ('id', 'description', 'date', 'time', 'game_id', 'organizer_id')
depth = 2
+12 -5
View File
@@ -1,9 +1,11 @@
"""View module for handling requests about game types"""
from cProfile import label
from pickle import NONE
from django.http import HttpResponseServerError
from rest_framework.viewsets import ViewSet
from rest_framework.response import Response
from rest_framework import serializers, status
from levelupapi.models import GameType
from levelupapi.models import GameType, game_type
class GameTypeView(ViewSet):
@@ -16,10 +18,12 @@ class GameTypeView(ViewSet):
Returns:
Response -- JSON serialized game type
"""
game_type = GameType.objects.get(pk=pk)
serializer = GameTypeSerializer(game_type)
return Response(serializer.data)
try:
game_type = GameType.objects.get(pk=pk)
serializer = GameTypeSerializer(game_type)
return Response(serializer.data)
except GameType.DoesNotExist as ex:
return Response({'message': ex.args[0]}, status=status.HTTP_404_NOT_FOUND)
def list(self, request):
"""Handle GET requests to get all game types
@@ -27,7 +31,10 @@ class GameTypeView(ViewSet):
Returns:
Response -- JSON serialized list of game types
"""
label = request.query_params.get('label', None)
game_types = GameType.objects.all()
if label is not NONE:
game_types = game_types.filter(label=label)
serializer = GameTypeSerializer(game_types, many=True)
return Response(serializer.data)
+22 -12
View File
@@ -5,33 +5,43 @@ from rest_framework import serializers, status
from levelupapi.models import Game
class GameView(ViewSet):
"""Level up game types view"""
"""Level up game s view"""
def retrieve(self, request, pk):
"""Handle GET requests for single game type
"""Handle GET requests for single game
Returns:
Response -- JSON serialized game type
Response -- JSON serialized game
"""
game = Game.objects.get(pk=pk)
serializer = GameSerializer(game)
return Response(serializer.data)
# Add in the next 3 lines
try:
game = Game.objects.get(pk=pk)
serializer = GameSerializer(game)
return Response(serializer.data)
except Game.DoesNotExist as ex:
return Response({'message': ex.args[0]}, status=status.HTTP_404_NOT_FOUND)
def list(self, request):
"""Handle GET requests to get all game types
"""Handle GET requests to get all game s
Returns:
Response -- JSON serialized list of game types
Response -- JSON serialized list of game s
"""
game = Game.objects.all()
serializer = GameSerializer(game, many=True)
game_ = request.query_params.get('type', None)
games = Game.objects.all()
if game_ is not None:
games = games.filter(game_type_id=game_)
serializer = GameSerializer(games, many=True)
return Response(serializer.data)
class GameSerializer(serializers.ModelSerializer):
"""JSON serializer for game types
"""JSON serializer for game s
"""
class Meta:
model = Game
fields = ('id', 'title', 'maker', 'number_of_players', 'skill_level', 'game_type_id', 'gamer_id')
fields = ('id', 'title', 'maker', 'number_of_players', 'skill_level', 'game_type_id', 'gamer_id')
depth = 1