use same mailbox format for "POST /api/mailboxes" and "GET /api/mailboxes"
This commit is contained in:
parent
a989545505
commit
273537e7ae
|
@ -1260,14 +1260,16 @@ List of mailboxes. Each mailbox has id, email, default, creation_timestamp field
|
|||
"id": 1,
|
||||
"default": true,
|
||||
"creation_timestamp": 1590918512,
|
||||
"nb_alias": 10
|
||||
"nb_alias": 10,
|
||||
"verified": true
|
||||
},
|
||||
{
|
||||
"email": "m1@example.com",
|
||||
"id": 2,
|
||||
"default": false,
|
||||
"creation_timestamp": 1590918512,
|
||||
"nb_alias": 0
|
||||
"nb_alias": 0,
|
||||
"verified": false
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
|
@ -15,6 +15,17 @@ from app.extensions import db
|
|||
from app.models import Mailbox
|
||||
|
||||
|
||||
def mailbox_to_dict(mailbox: Mailbox):
|
||||
return {
|
||||
"id": mailbox.id,
|
||||
"email": mailbox.email,
|
||||
"verified": mailbox.verified,
|
||||
"default": mailbox.user.default_mailbox_id == mailbox.id,
|
||||
"creation_timestamp": mailbox.created_at.timestamp,
|
||||
"nb_alias": mailbox.nb_alias(),
|
||||
}
|
||||
|
||||
|
||||
@api_bp.route("/mailboxes", methods=["POST"])
|
||||
@require_api_auth
|
||||
def create_mailbox():
|
||||
|
@ -23,11 +34,7 @@ def create_mailbox():
|
|||
Input:
|
||||
email: in body
|
||||
Output:
|
||||
the new mailbox
|
||||
- id
|
||||
- email
|
||||
- verified
|
||||
|
||||
the new mailbox dict
|
||||
"""
|
||||
user = g.user
|
||||
mailbox_email = request.get_json().get("email").lower().strip().replace(" ", "")
|
||||
|
@ -49,12 +56,7 @@ def create_mailbox():
|
|||
send_verification_email(user, new_mailbox)
|
||||
|
||||
return (
|
||||
jsonify(
|
||||
id=new_mailbox.id,
|
||||
email=new_mailbox.email,
|
||||
verified=new_mailbox.verified,
|
||||
default=user.default_mailbox_id == new_mailbox.id,
|
||||
),
|
||||
jsonify(mailbox_to_dict(new_mailbox)),
|
||||
201,
|
||||
)
|
||||
|
||||
|
@ -153,27 +155,11 @@ def get_mailboxes():
|
|||
"""
|
||||
Get mailboxes
|
||||
Output:
|
||||
- mailboxes: list of alias:
|
||||
- id
|
||||
- email
|
||||
- default: boolean - whether the mailbox is the default one
|
||||
- creation_timestamp
|
||||
- nb_alias
|
||||
- mailboxes: list of alias dict
|
||||
"""
|
||||
user = g.user
|
||||
|
||||
return (
|
||||
jsonify(
|
||||
mailboxes=[
|
||||
{
|
||||
"id": mb.id,
|
||||
"email": mb.email,
|
||||
"default": user.default_mailbox_id == mb.id,
|
||||
"creation_timestamp": mb.created_at.timestamp,
|
||||
"nb_alias": mb.nb_alias(),
|
||||
}
|
||||
for mb in user.mailboxes()
|
||||
]
|
||||
),
|
||||
jsonify(mailboxes=[mailbox_to_dict(mb) for mb in user.mailboxes()]),
|
||||
200,
|
||||
)
|
||||
|
|
|
@ -1,7 +1,3 @@
|
|||
import json
|
||||
|
||||
from flask import url_for
|
||||
|
||||
from flask import url_for
|
||||
|
||||
from app.extensions import db
|
||||
|
@ -25,10 +21,13 @@ def test_create_mailbox(flask_client):
|
|||
)
|
||||
|
||||
assert r.status_code == 201
|
||||
|
||||
# {'creation_timestamp': 1604398668, 'default': False, 'email': 'mailbox@gmail.com', 'id': 2, 'nb_alias': 0, 'verified': False}
|
||||
assert r.json["email"] == "mailbox@gmail.com"
|
||||
assert r.json["verified"] is False
|
||||
assert r.json["id"] > 0
|
||||
assert r.json["default"] is False
|
||||
assert r.json["nb_alias"] == 0
|
||||
|
||||
|
||||
def test_delete_mailbox(flask_client):
|
||||
|
@ -183,9 +182,11 @@ def test_get_mailboxes(flask_client):
|
|||
assert r.status_code == 200
|
||||
# m2@example.com is not returned as it's not verified
|
||||
assert len(r.json["mailboxes"]) == 2
|
||||
|
||||
for mb in r.json["mailboxes"]:
|
||||
assert "email" in mb
|
||||
assert "id" in mb
|
||||
assert "default" in mb
|
||||
assert "creation_timestamp" in mb
|
||||
assert "nb_alias" in mb
|
||||
assert "verified" in mb
|
||||
|
|
Loading…
Reference in New Issue