(api) add required actions to fix domain

Send all informations about required actions
to do to fix a domain and full check domain
health from dimail too.
This commit is contained in:
Sabrina Demagny
2025-02-11 13:00:04 +01:00
parent e1594493a7
commit a2b2c71448
4 changed files with 101 additions and 1 deletions

View File

@@ -57,6 +57,7 @@ class MailDomainSerializer(serializers.ModelSerializer):
abilities = serializers.SerializerMethodField(read_only=True)
count_mailboxes = serializers.SerializerMethodField(read_only=True)
action_required_details = serializers.SerializerMethodField(read_only=True)
class Meta:
model = models.MailDomain
@@ -71,6 +72,8 @@ class MailDomainSerializer(serializers.ModelSerializer):
"updated_at",
"count_mailboxes",
"support_email",
"last_check_details",
"action_required_details",
]
read_only_fields = [
"id",
@@ -80,8 +83,23 @@ class MailDomainSerializer(serializers.ModelSerializer):
"created_at",
"updated_at",
"count_mailboxes",
"last_check_details",
"action_required_details",
]
def get_action_required_details(self, domain) -> dict:
"""Return last check details of the domain."""
details = {}
if domain.last_check_details:
for check, value in domain.last_check_details.items():
if (
isinstance(value, dict)
and value.get("ok") is False
and value.get("internal") is False
):
details[check] = value["errors"][0].get("detail")
return details
def get_abilities(self, domain) -> dict:
"""Return abilities of the logged-in user on the instance."""
request = self.context.get("request")