♻️(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:
committed by
Marie
parent
232ea97d87
commit
55d7e846d8
@@ -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."""
|
||||
|
||||
Reference in New Issue
Block a user