return full alias info in POST /api/alias/custom/new

This commit is contained in:
Son NK 2020-03-26 19:48:36 +01:00
parent 159aa76aae
commit d4a32451c1
3 changed files with 25 additions and 2 deletions

View file

@ -714,7 +714,16 @@ If success, 201 with the new alias, for example
```json ```json
{ {
"alias": "www_groupon_com@my_domain.com" "alias": "www_groupon_com@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"
} }
``` ```

View file

@ -3,8 +3,10 @@ from flask import jsonify, request
from flask_cors import cross_origin from flask_cors import cross_origin
from app.api.base import api_bp, verify_api_key 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, ALIAS_DOMAINS from app.config import MAX_NB_EMAIL_FREE_PLAN, ALIAS_DOMAINS
from app.dashboard.views.custom_alias import verify_prefix_suffix from app.dashboard.views.custom_alias import verify_prefix_suffix
from app.dashboard.views.index import get_alias_info
from app.extensions import db from app.extensions import db
from app.log import LOG from app.log import LOG
from app.models import Alias, AliasUsedOn, User, CustomDomain from app.models import Alias, AliasUsedOn, User, CustomDomain
@ -75,4 +77,4 @@ def new_custom_alias():
AliasUsedOn.create(alias_id=alias.id, hostname=hostname, user_id=alias.user_id) AliasUsedOn.create(alias_id=alias.id, hostname=hostname, user_id=alias.user_id)
db.session.commit() db.session.commit()
return jsonify(alias=full_alias), 201 return jsonify(alias=full_alias, **serialize_alias_info(get_alias_info(alias))), 201

View file

@ -31,6 +31,18 @@ def test_success(flask_client):
assert r.status_code == 201 assert r.status_code == 201
assert r.json["alias"] == f"prefix.{word}@{EMAIL_DOMAIN}" assert r.json["alias"] == f"prefix.{word}@{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
new_ge = Alias.get_by(email=r.json["alias"]) new_ge = Alias.get_by(email=r.json["alias"])
assert new_ge.note == "test note" assert new_ge.note == "test note"