From b7e8324e5a81c61930322c42c727a84dd7f01a70 Mon Sep 17 00:00:00 2001 From: Son Date: Thu, 6 Jan 2022 15:20:09 +0100 Subject: [PATCH] move get_custom_domain() to alias_utils --- app/alias_utils.py | 13 +++++++++++++ app/api/views/new_custom_alias.py | 20 ++------------------ 2 files changed, 15 insertions(+), 18 deletions(-) diff --git a/app/alias_utils.py b/app/alias_utils.py index 5536204e..dd9e0a68 100644 --- a/app/alias_utils.py +++ b/app/alias_utils.py @@ -27,6 +27,7 @@ from app.models import ( Mailbox, EmailLog, Contact, + SLDomain, ) from app.regex_utils import regex_match @@ -274,3 +275,15 @@ def check_alias_prefix(alias_prefix) -> bool: return False return True + + +def get_custom_domain(alias_address) -> Optional[CustomDomain]: + alias_domain = validate_email( + alias_address, check_deliverability=False, allow_smtputf8=False + ).domain + + # handle the case a SLDomain is also a CustomDomain + if SLDomain.get_by(domain=alias_domain) is None: + custom_domain = CustomDomain.get_by(domain=alias_domain) + if custom_domain: + return custom_domain diff --git a/app/api/views/new_custom_alias.py b/app/api/views/new_custom_alias.py index da9c6c85..7221ac9b 100644 --- a/app/api/views/new_custom_alias.py +++ b/app/api/views/new_custom_alias.py @@ -1,11 +1,9 @@ -from typing import Optional - -from email_validator import validate_email, EmailNotValidError +from email_validator import EmailNotValidError from flask import g from flask import jsonify, request from itsdangerous import SignatureExpired -from app.alias_utils import check_alias_prefix +from app.alias_utils import check_alias_prefix, get_custom_domain from app.api.base import api_bp, require_api_auth from app.api.serializer import ( serialize_alias_info_v2, @@ -20,28 +18,14 @@ from app.models import ( Alias, AliasUsedOn, User, - CustomDomain, DeletedAlias, DomainDeletedAlias, Mailbox, AliasMailbox, - SLDomain, ) from app.utils import convert_to_id -def get_custom_domain(alias_address) -> Optional[CustomDomain]: - alias_domain = validate_email( - alias_address, check_deliverability=False, allow_smtputf8=False - ).domain - - # handle the case a SLDomain is also a CustomDomain - if SLDomain.get_by(domain=alias_domain) is None: - custom_domain = CustomDomain.get_by(domain=alias_domain) - if custom_domain: - return custom_domain - - @api_bp.route("/v2/alias/custom/new", methods=["POST"]) @limiter.limit(ALIAS_LIMIT) @require_api_auth