profile: add: game history

This commit is contained in:
2024-05-13 13:50:33 +02:00
parent f576dc208f
commit 5675f64268
6 changed files with 85 additions and 100 deletions

View File

@ -1,27 +0,0 @@
from rest_framework.views import APIView
from rest_framework.response import Response
from rest_framework import permissions, status
from django.http import HttpRequest
from .models import GameMembersModel, GameModel
from .serializers import GameSerializer
from . import config
class GameHistoryView(APIView):
permission_classes = (permissions.AllowAny,)
def get(self, request: HttpRequest, pk: int = None):
member_game_model_list: list[GameMembersModel] = GameMembersModel.objects.filter(player_id = pk)
game_model_list: list[GameModel] = []
for member_game_model in member_game_model_list:
game_model_list.append(GameModel.objects.get(pk = member_game_model.game_id))
games_data: list[dict] = [GameSerializer(game_model).data for game_model in game_model_list]
return Response(games_data)

View File

@ -0,0 +1,28 @@
from rest_framework.viewsets import ViewSet
from rest_framework.response import Response
from rest_framework import permissions
from django.http import HttpRequest
from django.contrib.auth.models import User
from django.shortcuts import get_object_or_404
from .models import GameMembersModel, GameModel
from .serializers import GameSerializer
class GameHistoryView(ViewSet):
queryset = User.objects.all()
serializer_class = GameSerializer
permission_classes = (permissions.IsAuthenticatedOrReadOnly,)
def retrive(self, request: HttpRequest, pk: int = None):
user: User = get_object_or_404(User, pk=pk)
member_game_model_list: list[GameMembersModel] = GameMembersModel.objects.filter(player=user)
game_model_list: list[GameModel] = [member_game_model.game for member_game_model in member_game_model_list]
games_data: list[dict] = self.serializer_class(game_model_list, many=True).data
return Response(games_data)

View File

@ -3,11 +3,11 @@ from django.conf import settings
from django.conf.urls.static import static
from .GameViewSet import GameViewSet
from .GameHistoryView import GameHistoryView
from .GameHistoryViewSet import GameHistoryView
from .GameConfigView import GameConfigView
urlpatterns = [
path("<int:pk>", GameViewSet.as_view({"get": "retrieve"}), name="game_page"),
path("history/<int:pk>", GameHistoryView.as_view(), name="history_page"),
path("history/<int:pk>", GameHistoryView.as_view({"get": "retrive"}), name="history_page"),
path("", GameConfigView.as_view(), name = "game_config")
]