add GET /api/v2/mailboxes
This commit is contained in:
parent
5ee74c74b6
commit
19ac657c1c
|
@ -1242,9 +1242,9 @@ Return 409 if contact is already added.
|
||||||
|
|
||||||
### Mailbox endpoints
|
### Mailbox endpoints
|
||||||
|
|
||||||
#### GET /api/mailboxes
|
#### GET /api/v2/mailboxes
|
||||||
|
|
||||||
Get user verified mailboxes.
|
Get user's mailboxes, including unverified ones.
|
||||||
|
|
||||||
Input:
|
Input:
|
||||||
- `Authentication` header that contains the api key
|
- `Authentication` header that contains the api key
|
||||||
|
|
|
@ -153,9 +153,9 @@ def update_mailbox(mailbox_id):
|
||||||
@require_api_auth
|
@require_api_auth
|
||||||
def get_mailboxes():
|
def get_mailboxes():
|
||||||
"""
|
"""
|
||||||
Get mailboxes
|
Get verified mailboxes
|
||||||
Output:
|
Output:
|
||||||
- mailboxes: list of alias dict
|
- mailboxes: list of mailbox dict
|
||||||
"""
|
"""
|
||||||
user = g.user
|
user = g.user
|
||||||
|
|
||||||
|
@ -163,3 +163,23 @@ def get_mailboxes():
|
||||||
jsonify(mailboxes=[mailbox_to_dict(mb) for mb in user.mailboxes()]),
|
jsonify(mailboxes=[mailbox_to_dict(mb) for mb in user.mailboxes()]),
|
||||||
200,
|
200,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
@api_bp.route("/v2/mailboxes", methods=["GET"])
|
||||||
|
@require_api_auth
|
||||||
|
def get_mailboxes_v2():
|
||||||
|
"""
|
||||||
|
Get all mailboxes - including unverified mailboxes
|
||||||
|
Output:
|
||||||
|
- mailboxes: list of mailbox dict
|
||||||
|
"""
|
||||||
|
user = g.user
|
||||||
|
mailboxes = []
|
||||||
|
|
||||||
|
for mailbox in Mailbox.query.filter_by(user_id=user.id):
|
||||||
|
mailboxes.append(mailbox)
|
||||||
|
|
||||||
|
return (
|
||||||
|
jsonify(mailboxes=[mailbox_to_dict(mb) for mb in mailboxes]),
|
||||||
|
200,
|
||||||
|
)
|
||||||
|
|
|
@ -2,6 +2,7 @@ from flask import url_for
|
||||||
|
|
||||||
from app.extensions import db
|
from app.extensions import db
|
||||||
from app.models import User, ApiKey, Mailbox
|
from app.models import User, ApiKey, Mailbox
|
||||||
|
from tests.utils import login
|
||||||
|
|
||||||
|
|
||||||
def test_create_mailbox(flask_client):
|
def test_create_mailbox(flask_client):
|
||||||
|
@ -190,3 +191,26 @@ def test_get_mailboxes(flask_client):
|
||||||
assert "creation_timestamp" in mb
|
assert "creation_timestamp" in mb
|
||||||
assert "nb_alias" in mb
|
assert "nb_alias" in mb
|
||||||
assert "verified" in mb
|
assert "verified" in mb
|
||||||
|
|
||||||
|
|
||||||
|
def test_get_mailboxes_v2(flask_client):
|
||||||
|
user = login(flask_client)
|
||||||
|
|
||||||
|
Mailbox.create(user_id=user.id, email="m1@example.com", verified=True)
|
||||||
|
Mailbox.create(user_id=user.id, email="m2@example.com", verified=False)
|
||||||
|
db.session.commit()
|
||||||
|
|
||||||
|
r = flask_client.get(
|
||||||
|
"/api/v2/mailboxes",
|
||||||
|
)
|
||||||
|
assert r.status_code == 200
|
||||||
|
# 3 mailboxes: the default, m1 and m2
|
||||||
|
assert len(r.json["mailboxes"]) == 3
|
||||||
|
|
||||||
|
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