aboutsummaryrefslogtreecommitdiffstats
path: root/pydis_site/apps/api/serializers.py
diff options
context:
space:
mode:
Diffstat (limited to 'pydis_site/apps/api/serializers.py')
-rw-r--r--pydis_site/apps/api/serializers.py25
1 files changed, 23 insertions, 2 deletions
diff --git a/pydis_site/apps/api/serializers.py b/pydis_site/apps/api/serializers.py
index 10eb3839..f47bedca 100644
--- a/pydis_site/apps/api/serializers.py
+++ b/pydis_site/apps/api/serializers.py
@@ -20,6 +20,7 @@ from .models import (
Infraction,
MessageDeletionContext,
Nomination,
+ NominationEntry,
OffTopicChannelName,
OffensiveMessage,
Reminder,
@@ -338,16 +339,36 @@ class UserSerializer(ModelSerializer):
raise ValidationError({"id": ["User with ID already present."]})
+class NominationEntrySerializer(ModelSerializer):
+ """A class providing (de-)serialization of `NominationEntry` instances."""
+
+ # We need to define it here, because we don't want that nomination ID
+ # return inside nomination response entry, because ID is already available
+ # as top-level field. Queryset is required if field is not read only.
+ nomination = PrimaryKeyRelatedField(
+ queryset=Nomination.objects.all(),
+ write_only=True
+ )
+
+ class Meta:
+ """Metadata defined for the Django REST framework."""
+
+ model = NominationEntry
+ fields = ('nomination', 'actor', 'reason', 'inserted_at')
+
+
class NominationSerializer(ModelSerializer):
"""A class providing (de-)serialization of `Nomination` instances."""
+ entries = NominationEntrySerializer(many=True, read_only=True)
+
class Meta:
"""Metadata defined for the Django REST Framework."""
model = Nomination
fields = (
- 'id', 'active', 'actor', 'reason', 'user',
- 'inserted_at', 'end_reason', 'ended_at')
+ 'id', 'active', 'user', 'inserted_at', 'end_reason', 'ended_at', 'reviewed', 'entries'
+ )
class OffensiveMessageSerializer(ModelSerializer):