From 97dff83453f007584a81c8b3313b282f671554b3 Mon Sep 17 00:00:00 2001 From: Son NK Date: Thu, 26 Mar 2020 19:50:22 +0100 Subject: [PATCH] return full alias info in POST /api/alias/random/new --- README.md | 11 ++++++++++- app/api/views/new_random_alias.py | 7 ++++++- tests/api/test_new_random_alias.py | 12 ++++++++++++ 3 files changed, 28 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 4803319e..384c7a02 100644 --- a/README.md +++ b/README.md @@ -743,7 +743,16 @@ If success, 201 with the new alias, for example ```json { - "alias": "www_groupon_com@my_domain.com" + "alias": "prefix.suffix@my_domain.com", + "creation_date": "2020-02-04 16:23:02+00:00", + "creation_timestamp": 1580833382, + "email": "www_groupon_com@my_domain.com", + "id": 4, + "nb_block": 0, + "nb_forward": 0, + "nb_reply": 0, + "enabled": true, + "note": "This is a note" } ``` diff --git a/app/api/views/new_random_alias.py b/app/api/views/new_random_alias.py index 62dd175a..a29d1bd1 100644 --- a/app/api/views/new_random_alias.py +++ b/app/api/views/new_random_alias.py @@ -3,7 +3,9 @@ from flask import jsonify, request from flask_cors import cross_origin from app.api.base import api_bp, verify_api_key +from app.api.views.alias import serialize_alias_info from app.config import MAX_NB_EMAIL_FREE_PLAN +from app.dashboard.views.index import get_alias_info from app.extensions import db from app.log import LOG from app.models import Alias, AliasUsedOn, AliasGeneratorEnum @@ -55,4 +57,7 @@ def new_random_alias(): AliasUsedOn.create(alias_id=alias.id, hostname=hostname, user_id=alias.user_id) db.session.commit() - return jsonify(alias=alias.email), 201 + return ( + jsonify(alias=alias.email, **serialize_alias_info(get_alias_info(alias))), + 201, + ) diff --git a/tests/api/test_new_random_alias.py b/tests/api/test_new_random_alias.py index f2d8c287..5f94e1f0 100644 --- a/tests/api/test_new_random_alias.py +++ b/tests/api/test_new_random_alias.py @@ -25,6 +25,18 @@ def test_success(flask_client): assert r.status_code == 201 assert r.json["alias"].endswith(EMAIL_DOMAIN) + # assert returned field + res = r.json + assert "id" in res + assert "email" in res + assert "creation_date" in res + assert "creation_timestamp" in res + assert "nb_forward" in res + assert "nb_block" in res + assert "nb_reply" in res + assert "enabled" in res + assert "note" in res + def test_custom_mode(flask_client): user = User.create(