36 lines
959 B
Python
36 lines
959 B
Python
from rest_framework import serializers
|
|
from notification.models import Subscriber
|
|
|
|
|
|
class SubscriberSerializer(serializers.ModelSerializer):
|
|
email = serializers.CharField()
|
|
locale = serializers.CharField(allow_null=True)
|
|
country_code = serializers.CharField(allow_null=True)
|
|
|
|
class Meta:
|
|
model = Subscriber
|
|
fields = (
|
|
"email",
|
|
"locale",
|
|
"country_code"
|
|
)
|
|
|
|
def validate(self, data):
|
|
data["email"] = self.get_email(data)
|
|
data["locale"] = self.get_locale(data)
|
|
data["country_code"] = self.get_country_code(data)
|
|
return data
|
|
|
|
def create(self, validated_data):
|
|
inst, created = Subscriber.objects.get_or_create(**validated_data)
|
|
return inst
|
|
|
|
def get_email(self, obj):
|
|
return obj["email"]
|
|
|
|
def get_locale(self, obj):
|
|
return obj["locale"]
|
|
|
|
def get_country_code(self, obj):
|
|
return obj["country_code"]
|