♻️(serializers) move dimail calls to serializers

we move all business logic from model to serializer.
all API calls (direct and from front) will keep on triggering
expected 3rd party calls while admin actions will uniquely trigger
modifications in our database.
This commit is contained in:
Marie PUPO JEAMMET
2024-09-19 18:47:08 +02:00
committed by Marie
parent 232ea97d87
commit 55d7e846d8
7 changed files with 81 additions and 168 deletions

View File

@@ -5,6 +5,7 @@ from rest_framework import serializers
from core.api.serializers import UserSerializer
from mailbox_manager import enums, models
from mailbox_manager.utils.dimail import DimailAPIClient
class MailboxSerializer(serializers.ModelSerializer):
@@ -16,6 +17,14 @@ class MailboxSerializer(serializers.ModelSerializer):
# everything is actually read-only as we do not allow update for now
read_only_fields = ["id"]
def create(self, validated_data):
"""
Override create function to fire a request on mailbox creation.
"""
client = DimailAPIClient()
client.send_mailbox_request(validated_data)
return models.Mailbox.objects.create(**validated_data)
class MailDomainSerializer(serializers.ModelSerializer):
"""Serialize mail domain."""