implement save of thread and members
This commit is contained in:
21
back/mails/utils/envelopeUtils.js
Normal file
21
back/mails/utils/envelopeUtils.js
Normal file
@@ -0,0 +1,21 @@
|
||||
function nbMembers(envelope) {
|
||||
return getMembers(envelope).length;
|
||||
}
|
||||
|
||||
function getMembers(envelope) {
|
||||
const members = [];
|
||||
const fields = ["from", "to", "sender", "replyTo", "cc", "bcc"];
|
||||
fields.forEach((field) => {
|
||||
if (!envelope[field]) return;
|
||||
envelope[field].forEach((member) => {
|
||||
if (members.find((m) => m.mailbox === member.mailbox && m.host === member.host)) return;
|
||||
members.push(member);
|
||||
});
|
||||
});
|
||||
return members;
|
||||
}
|
||||
|
||||
module.exports = {
|
||||
nbMembers,
|
||||
getMembers,
|
||||
};
|
||||
@@ -1,18 +0,0 @@
|
||||
function nbMembers(envelope) {
|
||||
let nbMembers =
|
||||
(envelope.bcc?.length ?? 0) +
|
||||
(envelope.cc?.length ?? 0) +
|
||||
(envelope.to?.length ?? 0) +
|
||||
(envelope.from?.length ?? 0);
|
||||
if (
|
||||
envelope.sender?.length > 0 &&
|
||||
!(envelope.sender[0].mailbox == envelope.from[0].mailbox && envelope.sender[0].host == envelope.from[0].host)
|
||||
) {
|
||||
nbMembers += envelope.sender?.length ?? 0;
|
||||
}
|
||||
return nbMembers;
|
||||
}
|
||||
|
||||
module.exports = {
|
||||
nbMembers,
|
||||
};
|
||||
Reference in New Issue
Block a user