Add reverse_alias to GET /api/aliases/:alias_id/activities

This commit is contained in:
Son NK 2020-04-04 19:18:07 +02:00
parent 1c5d6e3299
commit 4d8040c80d
4 changed files with 16 additions and 8 deletions

View File

@ -951,13 +951,15 @@ If success, 200 with the list of activities, for example:
"action": "reply",
"from": "yes_meo_chat@sl.local",
"timestamp": 1580903760,
"to": "marketing@example.com"
"to": "marketing@example.com",
"reverse_alias": "\"marketing at example.com\" <reply@a.b>",
},
{
"action": "reply",
"from": "yes_meo_chat@sl.local",
"timestamp": 1580903760,
"to": "marketing@example.com"
"to": "marketing@example.com",
"reverse_alias": "\"marketing at example.com\" <reply@a.b>",
}
]
}

View File

@ -142,6 +142,7 @@ def get_alias_activities(alias_id):
- to
- timestamp
- action: forward|reply|block
- reverse_alias
"""
user = g.user
@ -159,7 +160,10 @@ def get_alias_activities(alias_id):
activities = []
for alias_log in alias_logs:
activity = {"timestamp": alias_log.when.timestamp}
activity = {
"timestamp": alias_log.when.timestamp,
"reverse_alias": alias_log.reverse_alias,
}
if alias_log.is_reply:
activity["from"] = alias_log.alias
activity["to"] = alias_log.website_from or alias_log.website_email

View File

@ -11,6 +11,7 @@ from app.models import Alias, EmailLog, Contact
class AliasLog:
website_email: str
website_from: str
reverse_alias: str
alias: str
when: arrow.Arrow
is_reply: bool
@ -78,6 +79,7 @@ def get_alias_log(alias: Alias, page_id=0):
al = AliasLog(
website_email=contact.website_email,
website_from=contact.website_from,
reverse_alias=contact.website_send_to(),
alias=alias.email,
when=email_log.created_at,
is_reply=email_log.is_reply,

View File

@ -1,11 +1,10 @@
import json
from flask import url_for
from flask import url_for
from app.config import EMAIL_DOMAIN, MAX_NB_EMAIL_FREE_PLAN, PAGE_LIMIT
from app.config import PAGE_LIMIT
from app.extensions import db
from app.models import User, ApiKey, Alias, Contact, EmailLog
from app.utils import random_word
def test_get_aliases_error_without_pagination(flask_client):
@ -182,10 +181,11 @@ def test_alias_activities(flask_client):
assert r.status_code == 200
assert len(r.json["activities"]) == PAGE_LIMIT
for ac in r.json["activities"]:
assert ac["action"]
assert ac["from"]
assert ac["to"]
assert ac["timestamp"]
assert ac["action"]
assert ac["action"]
assert ac["reverse_alias"]
# second page, should return 1 or 2 results only
r = flask_client.get(