From 15a6d9630a81ab72b936171b587c0c342867d207 Mon Sep 17 00:00:00 2001 From: Son NK <> Date: Sun, 15 Nov 2020 19:43:37 +0100 Subject: [PATCH] Handle sender_format in PATCH /api/setting --- app/api/views/setting.py | 7 +++++++ tests/api/test_setting.py | 14 +++++++++++++- 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/app/api/views/setting.py b/app/api/views/setting.py index 13db76d3..a2e6de64 100644 --- a/app/api/views/setting.py +++ b/app/api/views/setting.py @@ -62,6 +62,13 @@ def update_setting(): else: user.alias_generator = AliasGeneratorEnum.uuid.value + if "sender_format" in data: + sender_format = data["sender_format"] + if not SenderFormatEnum.has_name(sender_format): + return jsonify(error="Invalid sender_format"), 400 + + user.sender_format = SenderFormatEnum.get_value(sender_format) + if "random_alias_default_domain" in data: default_domain = data["random_alias_default_domain"] sl_domain: SLDomain = SLDomain.get_by(domain=default_domain) diff --git a/tests/api/test_setting.py b/tests/api/test_setting.py index 73bb1683..92001263 100644 --- a/tests/api/test_setting.py +++ b/tests/api/test_setting.py @@ -1,6 +1,6 @@ import json -from app.models import CustomDomain, AliasGeneratorEnum +from app.models import CustomDomain, AliasGeneratorEnum, SenderFormatEnum from tests.utils import login, pretty @@ -54,6 +54,18 @@ def test_update_settings_random_alias_default_domain(flask_client): assert user.default_random_alias_domain() == "d1.test" +def test_update_settings_sender_format(flask_client): + user = login(flask_client) + assert user.sender_format == SenderFormatEnum.VIA.value + + r = flask_client.patch("/api/setting", json={"sender_format": "invalid"}) + assert r.status_code == 400 + + r = flask_client.patch("/api/setting", json={"sender_format": "AT"}) + assert r.status_code == 200 + assert user.sender_format == SenderFormatEnum.AT.value + + def test_get_setting_domains(flask_client): user = login(flask_client) CustomDomain.create(user_id=user.id, domain="ab.cd", verified=True, commit=True)