add queries for app functionnalities

This commit is contained in:
grimhilt
2023-03-13 00:54:44 +01:00
parent c81042a223
commit 28b2b69dc8
7 changed files with 101 additions and 46 deletions

View File

@@ -1,7 +1,7 @@
const { getAddresseId } = require("../sql/mail");
const { DEBUG } = require("../utils/debug");
const { simpleParser } = require("mailparser");
const moment = require('moment');
const {
registerMessage,
registerMailbox_message,
@@ -16,13 +16,14 @@ const {
registerMessageInRoom,
createThread,
registerMessageInThread,
isRoomGroup
isRoomGroup,
findSpacesFromMessage
} = require("../sql/saveMessageApp");
const { getFieldId, findRoomByOwner } = require("../sql/mail");
function saveMessage(attrs, mailboxId, imap) {
const envelope = attrs.envelope;
const timestamp = new Date(envelope.date).getTime();
const timestamp = moment(new Date(envelope.date).getTime()).format('YYYY-MM-DD HH:mm:ss');
const rfc822size = attrs.size;
registerMessage(timestamp, rfc822size, envelope.messageId).then(
@@ -94,7 +95,7 @@ function saveMessage(attrs, mailboxId, imap) {
getFieldId(newKey).then((fieldId) => {
if (envelope[key]) {
envelope[key].forEach((elt, index) => {
getAddresseId(`${elt.mailbox}@${elt.host}`).then((addressId) => {
getAddresseId(createAddress(elt)).then((addressId) => {
saveAddress_fields(messageId, part, position, fieldId, index, addressId);
});
});
@@ -104,7 +105,8 @@ function saveMessage(attrs, mailboxId, imap) {
});
// todo check for different provider name of inreplyto
registerMessageInApp()
// registerMessageInApp(envelope, messageId);
console.log(envelope)
}
);
@@ -114,24 +116,33 @@ function haveSameReceivers() {
// take cc and to
}
function registerMessageInApp() {
if (envelope.inReplyTo) {
registerReplyMessage();
} else {
findRoomByOwner(ownerId).then((res) => {
if (res.length == 0) {
registerMessageInRoom(messageId, res[0].id);
} else {
createRoom(envelope.subject, ownerId, envelope.flags.includes["seen"]).then((roomId) => {
registerMessageInRoom(messageId, roomId);
});
}
});
}
/**
* take object address and join mailbox and host to return mailbox@host
*/
function createAddress(elt) {
return `${elt.mailbox}@${elt.host}`
}
function registerReplyMessage() {
findSpaceFromMessage(messageId).then((spaces) => {
function registerMessageInApp(envelope, messageId) {
getAddresseId(createAddress(envelope.sender[0])).then((ownerId) => {
if (envelope.inReplyTo) {
registerReplyMessage();
} else {
findRoomByOwner(ownerId).then((res) => {
if (res.length == 0) {
registerMessageInRoom(messageId, res[0].id);
} else {
createRoom(envelope.subject, ownerId, envelope.flags.includes["seen"]).then((roomId) => {
registerMessageInRoom(messageId, roomId);
});
}
});
}
});
}
function registerReplyMessage(envelope, messageId) {
findSpacesFromMessage(messageId).then((spaces) => {
if(spaces.length == 0) { // no space, so is a transfer
// todo test if members of transferred message are included
} else if (spaces[0].room) { // message in room