- commit
- 3b55be15fb628d67d5fd15b5c3732f19fd66aa3f
- parent
- 2395488e17b20494d623734598d93ca8d7eeeff6
- Author
- Tobias Bengfort <tobias.bengfort@posteo.de>
- Date
- 2021-08-12 11:44
refactor: move code into getConversation helper
Diffstat
| M | experiment-api/api.js | 71 | +++++++++++++++++++++++++++++++------------------------------ |
1 files changed, 36 insertions, 35 deletions
diff --git a/experiment-api/api.js b/experiment-api/api.js
@@ -37,38 +37,43 @@ var unique = function(l, keyFn) {
37 37 });
38 38 };
39 39
40 -1 var getConversation = function(msgs, cb) {
41 -1 var conversationListener = {
42 -1 onItemsAdded: function() {},
43 -1 onItemsModified: function() {},
44 -1 onItemsRemoved: function() {},
45 -1 onQueryCompleted: function(collection) {
46 -1 cb(collection.items.filter(glodaMsg => glodaMsg.folderMessage));
47 -1 },
48 -1 };
-1 40 var getConversation = function(msgs) {
-1 41 return new Promise(resolve => {
-1 42 var conversationListener = {
-1 43 onItemsAdded: function() {},
-1 44 onItemsModified: function() {},
-1 45 onItemsRemoved: function() {},
-1 46 onQueryCompleted: function(collection) {
-1 47 var results = collection.items;
-1 48 results = results.filter(glodaMsg => glodaMsg.folderMessage);
-1 49 results = unique(results, glodaMsg => glodaMsg.headerMessageID);
-1 50 resolve(results);
-1 51 },
-1 52 };
49 53
50 -1 var listener = {
51 -1 onItemsAdded: function() {},
52 -1 onItemsModified: function() {},
53 -1 onItemsRemoved: function() {},
54 -1 onQueryCompleted: function(collection) {
55 -1 if (collection.items.length) {
56 -1 var conversation = collection.items[0].conversation;
57 -1 conversation.getMessagesCollection(conversationListener, true);
58 -1 } else {
59 -1 cb(msgs.map(function(msg) {
60 -1 return {
61 -1 folderMessage: msg,
62 -1 attachmentInfos: [],
63 -1 mailingLists: null,
64 -1 _indexedBodyText: null,
65 -1 };
66 -1 }));
67 -1 }
68 -1 },
69 -1 };
-1 54 var listener = {
-1 55 onItemsAdded: function() {},
-1 56 onItemsModified: function() {},
-1 57 onItemsRemoved: function() {},
-1 58 onQueryCompleted: function(collection) {
-1 59 if (collection.items.length) {
-1 60 var conversation = collection.items[0].conversation;
-1 61 conversation.getMessagesCollection(conversationListener, true);
-1 62 } else {
-1 63 resolve(msgs.map(function(msg) {
-1 64 return {
-1 65 folderMessage: msg,
-1 66 attachmentInfos: [],
-1 67 mailingLists: null,
-1 68 _indexedBodyText: null,
-1 69 };
-1 70 }));
-1 71 }
-1 72 },
-1 73 };
70 74
71 -1 Gloda.getMessageCollectionForHeaders(msgs, listener, null);
-1 75 Gloda.getMessageCollectionForHeaders(msgs, listener, null);
-1 76 });
72 77 };
73 78
74 79 var xi = class extends ExtensionCommon.ExtensionAPI {
@@ -91,11 +96,7 @@ var xi = class extends ExtensionCommon.ExtensionAPI {
91 96 },
92 97 getConversation(uris) {
93 98 // https://bugzilla.mozilla.org/show_bug.cgi?id=1665676
94 -1 return new Promise(resolve => {
95 -1 getConversation(uris.map(uri2msg), results => {
96 -1 resolve(unique(results, glodaMsg => glodaMsg.headerMessageID).map(glodaMsg2msg));
97 -1 });
98 -1 });
-1 99 return getConversation(uris.map(uri2msg)).then(results => results.map(glodaMsg2msg));
99 100 },
100 101 getFull(id) {
101 102 // the original getFull() is restricted to these fields: