diff --git a/README.md b/README.md index e67204d3..1c2337dd 100644 --- a/README.md +++ b/README.md @@ -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\" ", }, { "action": "reply", "from": "yes_meo_chat@sl.local", "timestamp": 1580903760, - "to": "marketing@example.com" + "to": "marketing@example.com", + "reverse_alias": "\"marketing at example.com\" ", } ] } diff --git a/app/api/views/alias.py b/app/api/views/alias.py index 3b485f5c..0201161f 100644 --- a/app/api/views/alias.py +++ b/app/api/views/alias.py @@ -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 diff --git a/app/dashboard/views/alias_log.py b/app/dashboard/views/alias_log.py index cd4b17e4..7b9d62d5 100644 --- a/app/dashboard/views/alias_log.py +++ b/app/dashboard/views/alias_log.py @@ -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, diff --git a/tests/api/test_alias.py b/tests/api/test_alias.py index 6f9e821f..fab95c71 100644 --- a/tests/api/test_alias.py +++ b/tests/api/test_alias.py @@ -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(