From 12f7485cb1f090601f0f0b0e581c0d987ffda2be Mon Sep 17 00:00:00 2001 From: Son NK <> Date: Wed, 28 Oct 2020 17:30:57 +0100 Subject: [PATCH] Add GET /api/setting/domains --- README.md | 28 +++++++++++++++++++++++++++- app/api/views/setting.py | 15 +++++++++++++++ tests/api/test_setting.py | 15 +++++++++++++++ 3 files changed, 57 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 37ad4722..56c2d306 100644 --- a/README.md +++ b/README.md @@ -1393,7 +1393,33 @@ Return user setting "notification": true, "random_alias_default_domain": "sl.local" } -``` +``` + +#### GET /api/setting/domains + +Return domains that user can use to create random alias + +```json +[ + [ + true, + "d1.test" + ], + [ + true, + "d2.test" + ], + [ + true, + "sl.local" + ], + [ + false, + "ab.cd" + ] +] +``` + ### Misc endpoints #### POST /api/apple/process_payment diff --git a/app/api/views/setting.py b/app/api/views/setting.py index 3598a6f5..6a81b8bf 100644 --- a/app/api/views/setting.py +++ b/app/api/views/setting.py @@ -25,3 +25,18 @@ def get_setting(): user = g.user return jsonify(setting_to_dict(user)) + + +@api_bp.route("/setting/domains") +@require_api_auth +def get_available_domains_for_random_alias(): + """ + Available domains for random alias + """ + user = g.user + + ret = [ + (is_sl, domain) for is_sl, domain in user.available_domains_for_random_alias() + ] + + return jsonify(ret) diff --git a/tests/api/test_setting.py b/tests/api/test_setting.py index befe81b6..3b700175 100644 --- a/tests/api/test_setting.py +++ b/tests/api/test_setting.py @@ -1,3 +1,4 @@ +from app.models import CustomDomain from tests.utils import login @@ -11,3 +12,17 @@ def test_get_setting(flask_client): "notification": True, "random_alias_default_domain": "sl.local", } + + +def test_get_setting(flask_client): + user = login(flask_client) + CustomDomain.create(user_id=user.id, domain="ab.cd", verified=True, commit=True) + + r = flask_client.get("/api/setting/domains") + assert r.status_code == 200 + assert r.json == [ + [True, "d1.test"], + [True, "d2.test"], + [True, "sl.local"], + [False, "ab.cd"], + ]