mirror of
https://github.com/simple-login/app.git
synced 2024-09-27 20:31:30 +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
|
||||
|
||||
|
||||
def serialize_contact(contact: Contact) -> dict:
|
||||
def serialize_contact(contact: Contact, existed=False) -> dict:
|
||||
res = {
|
||||
"id": contact.id,
|
||||
"creation_date": contact.created_at.format(),
|
||||
@ -93,6 +93,7 @@ def serialize_contact(contact: Contact) -> dict:
|
||||
"contact": contact.website_email,
|
||||
"reverse_alias": contact.website_send_to(),
|
||||
"reverse_alias_address": contact.reply_email,
|
||||
"existed": existed,
|
||||
}
|
||||
|
||||
email_log: EmailLog = contact.last_reply()
|
||||
|
@ -408,8 +408,9 @@ def create_contact_route(alias_id):
|
||||
contact_email = sanitize_email(contact_email)
|
||||
|
||||
# already been added
|
||||
if Contact.get_by(alias_id=alias.id, website_email=contact_email):
|
||||
return jsonify(error="Contact already added"), 409
|
||||
contact = Contact.get_by(alias_id=alias.id, website_email=contact_email)
|
||||
if contact:
|
||||
return jsonify(**serialize_contact(contact, existed=True)), 200
|
||||
|
||||
contact = Contact.create(
|
||||
user_id=alias.user_id,
|
||||
|
@ -526,7 +526,7 @@ Input:
|
||||
|
||||
Output:
|
||||
If success, return 201
|
||||
Return 409 if contact is already added.
|
||||
Return 200 and `existed=true` if contact is already added.
|
||||
|
||||
```json
|
||||
{
|
||||
@ -537,7 +537,8 @@ Return 409 if contact is already added.
|
||||
"last_email_sent_date": null,
|
||||
"last_email_sent_timestamp": null,
|
||||
"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["reverse_alias"]
|
||||
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(
|
||||
url_for("api.create_contact_route", alias_id=alias.id),
|
||||
headers={"Authentication": api_key.code},
|
||||
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):
|
||||
|
Loading…
Reference in New Issue
Block a user