(api) add count mailboxes to MailDomain serializer

Return number of mailboxes of a domain in our API.
This commit is contained in:
Sabrina Demagny
2025-02-04 14:50:35 +01:00
parent b4a877381a
commit 579dbdee10
4 changed files with 12 additions and 0 deletions

View File

@@ -56,6 +56,7 @@ class MailDomainSerializer(serializers.ModelSerializer):
"""Serialize mail domain."""
abilities = serializers.SerializerMethodField(read_only=True)
count_mailboxes = serializers.SerializerMethodField(read_only=True)
class Meta:
model = models.MailDomain
@@ -68,6 +69,7 @@ class MailDomainSerializer(serializers.ModelSerializer):
"abilities",
"created_at",
"updated_at",
"count_mailboxes",
]
read_only_fields = [
"id",
@@ -76,6 +78,7 @@ class MailDomainSerializer(serializers.ModelSerializer):
"abilities",
"created_at",
"updated_at",
"count_mailboxes",
]
def get_abilities(self, domain) -> dict:
@@ -85,6 +88,10 @@ class MailDomainSerializer(serializers.ModelSerializer):
return domain.get_abilities(request.user)
return {}
def get_count_mailboxes(self, domain) -> int:
"""Return count of mailboxes for the domain."""
return domain.mailboxes.count()
def create(self, validated_data):
"""
Override create function to fire a request to dimail upon domain creation.