mirror of
https://github.com/simple-login/app.git
synced 2024-09-28 20:51:29 +02:00
POST /api/aliases/:alias_id/contacts: return 200 and existed=true
if contact is already added.
This commit is contained in:
parent
48d7b66803
commit
c87fe55898
@ -83,7 +83,7 @@ def serialize_alias_info_v2(alias_info: AliasInfo) -> dict:
|
|||||||
return res
|
return res
|
||||||
|
|
||||||
|
|
||||||
def serialize_contact(contact: Contact) -> dict:
|
def serialize_contact(contact: Contact, existed=False) -> dict:
|
||||||
res = {
|
res = {
|
||||||
"id": contact.id,
|
"id": contact.id,
|
||||||
"creation_date": contact.created_at.format(),
|
"creation_date": contact.created_at.format(),
|
||||||
@ -93,6 +93,7 @@ def serialize_contact(contact: Contact) -> dict:
|
|||||||
"contact": contact.website_email,
|
"contact": contact.website_email,
|
||||||
"reverse_alias": contact.website_send_to(),
|
"reverse_alias": contact.website_send_to(),
|
||||||
"reverse_alias_address": contact.reply_email,
|
"reverse_alias_address": contact.reply_email,
|
||||||
|
"existed": existed,
|
||||||
}
|
}
|
||||||
|
|
||||||
email_log: EmailLog = contact.last_reply()
|
email_log: EmailLog = contact.last_reply()
|
||||||
|
@ -408,8 +408,9 @@ def create_contact_route(alias_id):
|
|||||||
contact_email = sanitize_email(contact_email)
|
contact_email = sanitize_email(contact_email)
|
||||||
|
|
||||||
# already been added
|
# already been added
|
||||||
if Contact.get_by(alias_id=alias.id, website_email=contact_email):
|
contact = Contact.get_by(alias_id=alias.id, website_email=contact_email)
|
||||||
return jsonify(error="Contact already added"), 409
|
if contact:
|
||||||
|
return jsonify(**serialize_contact(contact, existed=True)), 200
|
||||||
|
|
||||||
contact = Contact.create(
|
contact = Contact.create(
|
||||||
user_id=alias.user_id,
|
user_id=alias.user_id,
|
||||||
|
@ -526,7 +526,7 @@ Input:
|
|||||||
|
|
||||||
Output:
|
Output:
|
||||||
If success, return 201
|
If success, return 201
|
||||||
Return 409 if contact is already added.
|
Return 200 and `existed=true` if contact is already added.
|
||||||
|
|
||||||
```json
|
```json
|
||||||
{
|
{
|
||||||
@ -537,7 +537,8 @@ Return 409 if contact is already added.
|
|||||||
"last_email_sent_date": null,
|
"last_email_sent_date": null,
|
||||||
"last_email_sent_timestamp": null,
|
"last_email_sent_timestamp": null,
|
||||||
"reverse_alias": "First Last first@example.com <ra+qytyzjhrumrreuszrbjxqjlkh@sl.local>",
|
"reverse_alias": "First Last first@example.com <ra+qytyzjhrumrreuszrbjxqjlkh@sl.local>",
|
||||||
"reverse_alias_address": "reply+bzvpazcdedcgcpztehxzgjgzmxskqa@sl.co"
|
"reverse_alias_address": "reply+bzvpazcdedcgcpztehxzgjgzmxskqa@sl.co",
|
||||||
|
"existed": false
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
@ -523,14 +523,16 @@ def test_create_contact_route(flask_client):
|
|||||||
assert r.json["last_email_sent_timestamp"] is None
|
assert r.json["last_email_sent_timestamp"] is None
|
||||||
assert r.json["reverse_alias"]
|
assert r.json["reverse_alias"]
|
||||||
assert r.json["reverse_alias_address"]
|
assert r.json["reverse_alias_address"]
|
||||||
|
assert r.json["existed"] is False
|
||||||
|
|
||||||
# re-add a contact, should return 409
|
# re-add a contact, should return 200
|
||||||
r = flask_client.post(
|
r = flask_client.post(
|
||||||
url_for("api.create_contact_route", alias_id=alias.id),
|
url_for("api.create_contact_route", alias_id=alias.id),
|
||||||
headers={"Authentication": api_key.code},
|
headers={"Authentication": api_key.code},
|
||||||
json={"contact": "First2 Last2 <first@example.com>"},
|
json={"contact": "First2 Last2 <first@example.com>"},
|
||||||
)
|
)
|
||||||
assert r.status_code == 409
|
assert r.status_code == 200
|
||||||
|
assert r.json["existed"]
|
||||||
|
|
||||||
|
|
||||||
def test_create_contact_route_empty_contact_address(flask_client):
|
def test_create_contact_route_empty_contact_address(flask_client):
|
||||||
|
Loading…
Reference in New Issue
Block a user