"""EmailFactor API Views"""
from rest_framework.serializers import ModelSerializer
from rest_framework.viewsets import ModelViewSet

from passbook.factors.email.models import EmailFactor


class EmailFactorSerializer(ModelSerializer):
    """EmailFactor Serializer"""

    class Meta:

        model = EmailFactor
        fields = [
            "pk",
            "name",
            "slug",
            "order",
            "enabled",
            "host",
            "port",
            "username",
            "password",
            "use_tls",
            "use_ssl",
            "timeout",
            "from_address",
            "ssl_keyfile",
            "ssl_certfile",
        ]
        extra_kwargs = {"password": {"write_only": True}}


class EmailFactorViewSet(ModelViewSet):
    """EmailFactor Viewset"""

    queryset = EmailFactor.objects.all()
    serializer_class = EmailFactorSerializer