diff --git a/levelup/urls.py b/levelup/urls.py index 1f4b38d..2b91885 100644 --- a/levelup/urls.py +++ b/levelup/urls.py @@ -18,15 +18,20 @@ from django.conf.urls import include from django.urls import path from levelupapi.views import register_user, login_user from rest_framework import routers +from levelupapi.views.games import GameView from levelupapi.views.game_type import GameTypeView +from levelupapi.views.events import EventView router = routers.DefaultRouter(trailing_slash=False) router.register(r'gametypes', GameTypeView, 'gametype') +router.register(r'games', GameView, 'game') +router.register(r'events', EventView, 'event') urlpatterns = [ path('register', register_user), path('login', login_user), path('', include(router.urls)), path('admin/', admin.site.urls), + ] diff --git a/levelupapi/views/__init__.py b/levelupapi/views/__init__.py index 0801135..2312ab4 100644 --- a/levelupapi/views/__init__.py +++ b/levelupapi/views/__init__.py @@ -1 +1,3 @@ -from .auth import login_user, register_user \ No newline at end of file +from .auth import login_user, register_user +from .game_type import GameTypeView +from .games import GameView \ No newline at end of file diff --git a/levelupapi/views/events.py b/levelupapi/views/events.py new file mode 100644 index 0000000..db1a71f --- /dev/null +++ b/levelupapi/views/events.py @@ -0,0 +1,37 @@ +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 Event + +class EventView(ViewSet): + """Level up event types view""" + + def retrieve(self, request, pk): + """Handle GET requests for single event type + + + Returns: + Response -- JSON serialized event type + """ + event = Event.objects.get(pk=pk) + serializer = EventSerializer(event) + return Response(serializer.data) + + + def list(self, request): + """Handle GET requests to get all event types + + Returns: + Response -- JSON serialized list of event types + """ + event = Event.objects.all() + serializer = EventSerializer(event, many=True) + return Response(serializer.data) + +class EventSerializer(serializers.ModelSerializer): + """JSON serializer for event types + """ + class Meta: + model = Event + fields = ('id', 'description', 'date', 'time', 'game_id', 'organizer_id') \ No newline at end of file diff --git a/levelupapi/views/games.py b/levelupapi/views/games.py new file mode 100644 index 0000000..152803e --- /dev/null +++ b/levelupapi/views/games.py @@ -0,0 +1,37 @@ +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 Game + +class GameView(ViewSet): + """Level up game types view""" + + def retrieve(self, request, pk): + """Handle GET requests for single game type + + + Returns: + Response -- JSON serialized game type + """ + game = Game.objects.get(pk=pk) + serializer = GameSerializer(game) + return Response(serializer.data) + + + def list(self, request): + """Handle GET requests to get all game types + + Returns: + Response -- JSON serialized list of game types + """ + game = Game.objects.all() + serializer = GameSerializer(game, many=True) + return Response(serializer.data) + +class GameSerializer(serializers.ModelSerializer): + """JSON serializer for game types + """ + class Meta: + model = Game + fields = ('id', 'title', 'maker', 'number_of_players', 'skill_level', 'game_type_id', 'gamer_id') \ No newline at end of file