add new parameter disabled in /GET /api/v2/aliases

This commit is contained in:
Son 2022-04-25 09:22:29 +02:00
parent 5053d9f1f5
commit 58b332b7bc
3 changed files with 31 additions and 1 deletions

View File

@ -79,6 +79,7 @@ def get_aliases_v2():
Input:
page_id: in query
pinned: in query
disabled: in query
Output:
- aliases: list of alias:
- id
@ -110,6 +111,14 @@ def get_aliases_v2():
return jsonify(error="page_id must be provided in request query"), 400
pinned = "pinned" in request.args
disabled = "disabled" in request.args
if pinned:
alias_filter = "pinned"
elif disabled:
alias_filter = "disabled"
else:
alias_filter = None
query = None
data = request.get_json(silent=True)
@ -117,7 +126,7 @@ def get_aliases_v2():
query = data.get("query")
alias_infos: [AliasInfo] = get_alias_infos_with_pagination_v3(
user, page_id=page_id, query=query, alias_filter="pinned" if pinned else None
user, page_id=page_id, query=query, alias_filter=alias_filter
)
return (

View File

@ -312,6 +312,8 @@ Input:
- `page_id` in query. Used for the pagination. The endpoint returns maximum 20 aliases for each page. `page_id` starts
at 0.
- (Optional) `pinned` in query. If set, only pinned aliases are returned.
- (Optional) `disabled` in query. If set, only disabled aliases are returned.
Please note `pinned` and `disabled` can't be both present.
- (Optional) query: included in request body. Some frameworks might prevent GET request having a non-empty body, in this
case this endpoint also supports POST.

View File

@ -195,6 +195,25 @@ def test_get_pinned_aliases_v2(flask_client):
assert r.json["aliases"][0]["id"] == a0.id
def test_get_disabled_aliases_v2(flask_client):
user = login(flask_client)
a0 = Alias.create_new(user, "prefix0")
a0.enabled = False
Session.commit()
r = flask_client.get("/api/v2/aliases?page_id=0")
assert r.status_code == 200
# the default alias (created when user is created) and a0 are returned
assert len(r.json["aliases"]) == 2
r = flask_client.get("/api/v2/aliases?page_id=0&disabled=true")
assert r.status_code == 200
# only a0 is returned
assert len(r.json["aliases"]) == 1
assert r.json["aliases"][0]["id"] == a0.id
def test_delete_alias(flask_client):
user = login(flask_client)