Initializing the GameEvent endpoint
This commit is contained in:
@@ -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)
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
from .game import GameSerializer
|
||||
from .game import GameSerializer, GameEventSerializer
|
||||
|
||||
|
||||
__all__ = ["GameSerializer"]
|
||||
__all__ = ["GameSerializer", "GameEventSerializer"]
|
||||
|
||||
@@ -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__"
|
||||
|
||||
@@ -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"),
|
||||
|
||||
@@ -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
0
game/signals.py
Normal file
Reference in New Issue
Block a user