Initializing the GameEvent endpoint

This commit is contained in:
2020-11-06 01:16:59 -03:00
parent 2f56832def
commit 01c6b44427
6 changed files with 30 additions and 7 deletions

View File

@@ -3,7 +3,7 @@ from rest_framework.response import Response
from rest_framework.views import APIView
from game.models import Game
from ..serializers import GameSerializer
from ..serializers import GameSerializer, GameEventSerializer
class GameResource(APIView):
@@ -28,3 +28,19 @@ class GameSingleResource(APIView):
serializer = GameSerializer(game)
return Response(serializer.data, status=status.HTTP_200_OK)
class GameEventResource(APIView):
def post(self, request, game_id):
""" Creates a new event """
try:
Game.objects.get(pk=game_id)
except Game.DoesNotExist:
return Response(status=status.HTTP_404_NOT_FOUND)
serializer = GameEventSerializer(data=request.data)
if serializer.is_valid():
serializer.save()
return Response(serializer.data, status=status.HTTP_201_CREATED)
return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)

View File

@@ -1,4 +1,4 @@
from .game import GameSerializer
from .game import GameSerializer, GameEventSerializer
__all__ = ["GameSerializer"]
__all__ = ["GameSerializer", "GameEventSerializer"]

View File

@@ -1,9 +1,15 @@
from rest_framework import serializers
from game.models import Game
from game.models import Game, GameEvent
class GameSerializer(serializers.ModelSerializer):
class Meta:
model = Game
fields = "__all__"
class GameEventSerializer(serializers.ModelSerializer):
class Meta:
model = GameEvent
fields = "__all__"

View File

@@ -1,12 +1,13 @@
from django.urls import path
from .resources.main import MainResource
from .resources.game import GameResource, GameSingleResource
from .resources.game import GameResource, GameSingleResource, GameEventResource
app_name = "api"
urlpatterns = [
path("games/<game_id>/events", GameEventResource.as_view(), name="games_events"),
path("games/<game_id>", GameSingleResource.as_view(), name="games_single"),
path("games", GameResource.as_view(), name="games"),
path("", MainResource.as_view(), name="main"),

View File

@@ -72,7 +72,7 @@ class Game(models.Model):
class EventTypes(EnumChoicesBase):
""" Event types to generate a game timeline """
CREATE_GAME = 0
START_GAME = 0
PAUSE = 1
RESUME = 2
CLICK_MINE = 3
@@ -88,7 +88,7 @@ class GameEvent(models.Model):
type = models.IntegerField(
choices=EventTypes.choices(),
default=EventTypes.CREATE_GAME,
default=EventTypes.START_GAME,
help_text="The game event",
)

0
game/signals.py Normal file
View File