game serializer: fix: winner call profileserializer

This commit is contained in:
starnakin 2024-05-13 16:53:06 +02:00
parent bb6353f578
commit 4eaca83821

View File

@ -9,7 +9,7 @@ from profiles.serializers import ProfileSerializer
class GameSerializer(serializers.ModelSerializer): class GameSerializer(serializers.ModelSerializer):
players = serializers.SerializerMethodField() players = serializers.SerializerMethodField()
winner = serializers.ReadOnlyField() winner = serializers.SerializerMethodField()
state = serializers.SerializerMethodField() state = serializers.SerializerMethodField()
started = serializers.ReadOnlyField() started = serializers.ReadOnlyField()
finished = serializers.ReadOnlyField() finished = serializers.ReadOnlyField()
@ -28,5 +28,10 @@ class GameSerializer(serializers.ModelSerializer):
return "started" return "started"
return "waiting" return "waiting"
def get_winner(self, instance: GameModel):
if (instance.winner is None):
return None
return ProfileSerializer(instance.winner.profilemodel).data
def get_players(self, instance: GameModel): def get_players(self, instance: GameModel):
return ProfileSerializer(instance.get_players_profiles(), many=True).data return ProfileSerializer(instance.get_players_profiles(), many=True).data