mirror of
https://github.com/simple-login/app.git
synced 2024-09-27 20:31:30 +02:00
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,
|
"id": 1,
|
||||||
"default": true,
|
"default": true,
|
||||||
"creation_timestamp": 1590918512,
|
"creation_timestamp": 1590918512,
|
||||||
"nb_alias": 10
|
"nb_alias": 10,
|
||||||
|
"verified": true
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"email": "m1@example.com",
|
"email": "m1@example.com",
|
||||||
"id": 2,
|
"id": 2,
|
||||||
"default": false,
|
"default": false,
|
||||||
"creation_timestamp": 1590918512,
|
"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
|
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"])
|
@api_bp.route("/mailboxes", methods=["POST"])
|
||||||
@require_api_auth
|
@require_api_auth
|
||||||
def create_mailbox():
|
def create_mailbox():
|
||||||
@ -23,11 +34,7 @@ def create_mailbox():
|
|||||||
Input:
|
Input:
|
||||||
email: in body
|
email: in body
|
||||||
Output:
|
Output:
|
||||||
the new mailbox
|
the new mailbox dict
|
||||||
- id
|
|
||||||
- email
|
|
||||||
- verified
|
|
||||||
|
|
||||||
"""
|
"""
|
||||||
user = g.user
|
user = g.user
|
||||||
mailbox_email = request.get_json().get("email").lower().strip().replace(" ", "")
|
mailbox_email = request.get_json().get("email").lower().strip().replace(" ", "")
|
||||||
@ -49,12 +56,7 @@ def create_mailbox():
|
|||||||
send_verification_email(user, new_mailbox)
|
send_verification_email(user, new_mailbox)
|
||||||
|
|
||||||
return (
|
return (
|
||||||
jsonify(
|
jsonify(mailbox_to_dict(new_mailbox)),
|
||||||
id=new_mailbox.id,
|
|
||||||
email=new_mailbox.email,
|
|
||||||
verified=new_mailbox.verified,
|
|
||||||
default=user.default_mailbox_id == new_mailbox.id,
|
|
||||||
),
|
|
||||||
201,
|
201,
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -153,27 +155,11 @@ def get_mailboxes():
|
|||||||
"""
|
"""
|
||||||
Get mailboxes
|
Get mailboxes
|
||||||
Output:
|
Output:
|
||||||
- mailboxes: list of alias:
|
- mailboxes: list of alias dict
|
||||||
- id
|
|
||||||
- email
|
|
||||||
- default: boolean - whether the mailbox is the default one
|
|
||||||
- creation_timestamp
|
|
||||||
- nb_alias
|
|
||||||
"""
|
"""
|
||||||
user = g.user
|
user = g.user
|
||||||
|
|
||||||
return (
|
return (
|
||||||
jsonify(
|
jsonify(mailboxes=[mailbox_to_dict(mb) for mb in user.mailboxes()]),
|
||||||
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()
|
|
||||||
]
|
|
||||||
),
|
|
||||||
200,
|
200,
|
||||||
)
|
)
|
||||||
|
@ -1,7 +1,3 @@
|
|||||||
import json
|
|
||||||
|
|
||||||
from flask import url_for
|
|
||||||
|
|
||||||
from flask import url_for
|
from flask import url_for
|
||||||
|
|
||||||
from app.extensions import db
|
from app.extensions import db
|
||||||
@ -25,10 +21,13 @@ def test_create_mailbox(flask_client):
|
|||||||
)
|
)
|
||||||
|
|
||||||
assert r.status_code == 201
|
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["email"] == "mailbox@gmail.com"
|
||||||
assert r.json["verified"] is False
|
assert r.json["verified"] is False
|
||||||
assert r.json["id"] > 0
|
assert r.json["id"] > 0
|
||||||
assert r.json["default"] is False
|
assert r.json["default"] is False
|
||||||
|
assert r.json["nb_alias"] == 0
|
||||||
|
|
||||||
|
|
||||||
def test_delete_mailbox(flask_client):
|
def test_delete_mailbox(flask_client):
|
||||||
@ -183,9 +182,11 @@ def test_get_mailboxes(flask_client):
|
|||||||
assert r.status_code == 200
|
assert r.status_code == 200
|
||||||
# m2@example.com is not returned as it's not verified
|
# m2@example.com is not returned as it's not verified
|
||||||
assert len(r.json["mailboxes"]) == 2
|
assert len(r.json["mailboxes"]) == 2
|
||||||
|
|
||||||
for mb in r.json["mailboxes"]:
|
for mb in r.json["mailboxes"]:
|
||||||
assert "email" in mb
|
assert "email" in mb
|
||||||
assert "id" in mb
|
assert "id" in mb
|
||||||
assert "default" in mb
|
assert "default" in mb
|
||||||
assert "creation_timestamp" in mb
|
assert "creation_timestamp" in mb
|
||||||
assert "nb_alias" in mb
|
assert "nb_alias" in mb
|
||||||
|
assert "verified" in mb
|
||||||
|
Loading…
Reference in New Issue
Block a user