浏览代码

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

Son NK 5 年之前
父节点
当前提交
4d8040c80d
共有 4 个文件被更改,包括 16 次插入8 次删除
  1. 4 2
      README.md
  2. 5 1
      app/api/views/alias.py
  3. 2 0
      app/dashboard/views/alias_log.py
  4. 5 5
      tests/api/test_alias.py

+ 4 - 2
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\" <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>",
     }
   ]
 }

+ 5 - 1
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

+ 2 - 0
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,

+ 5 - 5
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(