From 6b96815b93ec09fec2b9185f05f7421751e25c0b Mon Sep 17 00:00:00 2001 From: grimhilt Date: Thu, 16 Mar 2023 16:14:25 +0100 Subject: [PATCH] save message working without reply --- back/app/saveMessage.js | 92 ++++++++++++ back/{sql => db}/database.dart | 0 back/{sql => db}/database.sql | 0 back/{sql/bdd.js => db/db.js} | 12 +- back/{sql => db}/mail.js | 2 +- back/{sql => db}/saveMessage.js | 44 ++++-- back/{sql => db}/saveMessageApp.js | 47 +++--- back/{sql => db}/structure | 0 back/{sql => db}/structureV2.sql | 1 + back/imap/index.js | 53 +++---- back/imap/storeMessage.js | 225 ++++++++--------------------- back/sql/database.png | Bin 144048 -> 0 bytes back/utils/debug.js | 12 +- 13 files changed, 240 insertions(+), 248 deletions(-) create mode 100644 back/app/saveMessage.js rename back/{sql => db}/database.dart (100%) rename back/{sql => db}/database.sql (100%) rename back/{sql/bdd.js => db/db.js} (79%) rename back/{sql => db}/mail.js (94%) rename back/{sql => db}/saveMessage.js (50%) rename back/{sql => db}/saveMessageApp.js (61%) rename back/{sql => db}/structure (100%) rename back/{sql => db}/structureV2.sql (99%) delete mode 100644 back/sql/database.png diff --git a/back/app/saveMessage.js b/back/app/saveMessage.js new file mode 100644 index 0000000..a84f79e --- /dev/null +++ b/back/app/saveMessage.js @@ -0,0 +1,92 @@ +const { + createRoom, + registerMessageInRoom, + createThread, + registerMessageInThread, + isRoomGroup, + findSpacesFromMessage, + hasSameMembersAsParent, +} = require("../db/saveMessageApp"); + +const { findRoomByOwner, getAddresseId } = require("../db/mail"); + +/** + * take object address and join mailbox and host to return mailbox@host + */ +function createAddress(elt) { + return `${elt.mailbox}@${elt.host}`; +} + +async function registerMessageInApp(messageId, attrs) { + const isSeen = attrs.flags.includes("Seen") ? 1 : 0; // todo verify + const envelope = attrs.envelope; + + await getAddresseId(createAddress(envelope.sender[0])).then(async (ownerId) => { + if (envelope.inReplyTo) { + await registerReplyMessage(envelope, messageId, isSeen); + } else { + await findRoomByOwner(ownerId).then(async (res) => { + if (res.length == 0) { + await createRoom(envelope.subject, ownerId).then(async (roomId) => { + await registerMessageInRoom(messageId, roomId, isSeen); + }); + } else { + await registerMessageInRoom(messageId, res[0].room_id, isSeen); + } + }); + } + }); +} + +async function registerReplyMessage(envelope, messageId, isSeen) { + const messageID = envelope.messageId; + await findSpacesFromMessage(messageId).then(async (spaces) => { + // todo sub thread will not be in index 0 so look in all indexes + if (spaces.length == 0) { + // no space, so is a transfer + // todo test if members of transferred message are included + } else if (spaces[0].thread_id) { + await registerMessageInThread(messageId, spaces[0].thread_id, isSeen); + // todo + // if (hasSameMembersAsParent(messageID, envelope.inReplyTo)) { + // // register new message in thread + // // possibly convert to room only if parent is channel + // } else { + // // todo create sub thread + // } + } else if (spaces[0].room_id) { + // message in room and not thread + await isRoomGroup(spaces[0].room_id).then(async (isGroup) => { + if (isGroup) { + const hasSameMembers = await hasSameMembersAsParent(messageID, envelope.inReplyTo); + if (hasSameMembers) { + await registerMessageInRoom(messageId, spaces[0].room_id, isSeen); + } else { + // group and not the same member as the reply + // some recipient has been removed create a thread + const isDm = 0; // todo + await createThread(space[0].room_id, envelope.subject, isSeen, isDm).then(async (threadId) => { + await registerMessageInThread(messageId, threadId, isSeen); + }); + } + } else { + // reply from channel + // todo + // if (messageInRoom == 1) { // was new channel transform to group + // // register new message in group + // } else if (sender == owner) { // correction from the original sender + // // leave in the same channel + // } else { // user response to announcement + // // create new thread + // } + } + }); + } + }); + + // `SELECT app_room_messages.room, app_room_messages.thread FROM app_room_messages INNER JOIN messages WHERE messages.messageID = '${envelope.inReplyTo}' AND app_room_messages.message = messages.id`; +} + +module.exports = { + registerMessageInApp +}; \ No newline at end of file diff --git a/back/sql/database.dart b/back/db/database.dart similarity index 100% rename from back/sql/database.dart rename to back/db/database.dart diff --git a/back/sql/database.sql b/back/db/database.sql similarity index 100% rename from back/sql/database.sql rename to back/db/database.sql diff --git a/back/sql/bdd.js b/back/db/db.js similarity index 79% rename from back/sql/bdd.js rename to back/db/db.js index 98287da..9f179dd 100644 --- a/back/sql/bdd.js +++ b/back/db/db.js @@ -3,14 +3,14 @@ const MYSQL = require("./config.json").mysql; const DEBUG = require("../utils/debug.js").DEBUG; -const bdd = mysql.createConnection({ +const db = mysql.createConnection({ host: MYSQL.host, user: MYSQL.user, password: MYSQL.pwd, database: MYSQL.database, }); -bdd.connect(function (err) { +db.connect(function (err) { if (err) { DEBUG.log("Impossible de se connecter", err.code); } else { @@ -20,7 +20,7 @@ bdd.connect(function (err) { function execQueryAsync(query, values) { return new Promise((resolve, reject) => { - bdd.query(query, values, (err, results, fields) => { + db.query(query, values, (err, results, fields) => { if (err) { reject(err); } else { @@ -32,7 +32,7 @@ function execQueryAsync(query, values) { function execQueryAsyncWithId(query, values) { return new Promise((resolve, reject) => { - bdd.query(query, values, (err, results, fields) => { + db.query(query, values, (err, results, fields) => { if (err) { reject(err); } else { @@ -43,7 +43,7 @@ function execQueryAsyncWithId(query, values) { } function execQuery(query, values) { - bdd.query(query, values, (err, results, fields) => { + db.query(query, values, (err, results, fields) => { if (err) { DEBUG.log(err); throw (err); @@ -53,7 +53,7 @@ function execQuery(query, values) { } module.exports = { - bdd, // todo remove this + db, // todo remove this execQuery, execQueryAsync, execQueryAsyncWithId diff --git a/back/sql/mail.js b/back/db/mail.js similarity index 94% rename from back/sql/mail.js rename to back/db/mail.js index 20212f4..bba9547 100644 --- a/back/sql/mail.js +++ b/back/db/mail.js @@ -1,4 +1,4 @@ -const { bdd, execQueryAsync, execQueryAsyncWithId } = require("./bdd.js"); +const { db, execQueryAsync, execQueryAsyncWithId } = require("./db.js"); const DEBUG = require("../utils/debug").DEBUG; function isValidEmail(email) { diff --git a/back/sql/saveMessage.js b/back/db/saveMessage.js similarity index 50% rename from back/sql/saveMessage.js rename to back/db/saveMessage.js index 7854327..8d9c836 100644 --- a/back/sql/saveMessage.js +++ b/back/db/saveMessage.js @@ -1,25 +1,32 @@ -const { bdd, execQuery, execQueryAsync, execQueryAsyncWithId } = require("./bdd.js"); +const { db, execQuery, execQueryAsync, execQueryAsyncWithId } = require("./db.js"); const DEBUG = require("../utils/debug").DEBUG; async function registerMessage(timestamp, rfc822size, messageId) { - const query = `INSERT INTO message - (idate, messageID, rfc822size) VALUES (?, ?, ?) - ON DUPLICATE KEY UPDATE message_id = LAST_INSERT_ID(message_id)`; + const query = ` + INSERT INTO message + (idate, messageID, rfc822size) VALUES (?, ?, ?) + ON DUPLICATE KEY UPDATE message_id = LAST_INSERT_ID(message_id) + `; const values = [timestamp, messageId, rfc822size]; return await execQueryAsyncWithId(query, values); } function registerMailbox_message(mailboxId, uid, messageId, modseq, seen, deleted) { - const query = `INSERT IGNORE INTO mailbox_message (mailbox_id, uid, message_id, modseq, seen, deleted) VALUES (?, ?, ?, ?, ?, ?)`; + const query = ` + INSERT IGNORE INTO mailbox_message + (mailbox_id, uid, message_id, modseq, seen, deleted) VALUES (?, ?, ?, ?, ?, ?) + `; const values = [mailboxId, uid, messageId, modseq, seen, deleted]; execQuery(query, values); } function registerBodypart(messageId, part, bodypartId, bytes, nbLines) { - const query = `INSERT IGNORE INTO part_number (message_id, part, bodypart_id, bytes, nb_lines) VALUES ('${messageId}', '${part}', '${bodypartId}', '${bytes}', '${nbLines}')`; - bdd.query(query, (err, results, fields) => { - if (err) DEBUG.log(err); - }); + const query = ` + INSERT IGNORE INTO part_number + (message_id, part, bodypart_id, bytes, nb_lines) VALUES (?, ?, ?, ?, ?) + `; + const values = [messageId, part, bodypartId, bytes, nbLines]; + execQuery(query, values); } async function saveBodypart(bytes, hash, text, data) { @@ -29,19 +36,30 @@ async function saveBodypart(bytes, hash, text, data) { } async function saveHeader_fields(messageId, fieldId, bodypartId, part, value) { - const query = `INSERT IGNORE INTO header_field (message_id, field_id, bodypart_id, part, value) VALUES (?, ?, ?, ?, ?)`; + const query = ` + INSERT IGNORE INTO header_field + (message_id, field_id, bodypart_id, part, value) VALUES (?, ?, ?, ?, ?) + `; const values = [messageId, fieldId, bodypartId, part, value]; return await execQueryAsync(query, values); } async function saveAddress_fields(messageId, fieldId, addressId, number) { - const query = `INSERT IGNORE INTO address_field (message_id , field_id, address_id, number) VALUES (?, ?, ?, ?)`; + const query = ` + INSERT IGNORE INTO address_field + (message_id , field_id, address_id, number) VALUES (?, ?, ?, ?) + `; const values = [messageId, fieldId, addressId, number]; - return execQueryAsync(query, values); + return await execQueryAsync(query, values); } function saveSource(messageId, content) { - // todo + const query = ` + INSERT INTO source (message_id, content) VALUES (?, ?) + ON DUPLICATE KEY UPDATE content = ? + `; + const values = [messageId, content, content]; + execQuery(query, values); } module.exports = { diff --git a/back/sql/saveMessageApp.js b/back/db/saveMessageApp.js similarity index 61% rename from back/sql/saveMessageApp.js rename to back/db/saveMessageApp.js index c0aadaa..1a6b38a 100644 --- a/back/sql/saveMessageApp.js +++ b/back/db/saveMessageApp.js @@ -1,4 +1,4 @@ -const { bdd, execQueryAsync, execQueryAsyncWithId } = require("./bdd.js"); +const { db, execQueryAsync, execQueryAsyncWithId } = require("./db.js"); const DEBUG = require("../utils/debug").DEBUG; async function createRoom(roomName, ownerId) { @@ -8,11 +8,10 @@ async function createRoom(roomName, ownerId) { // todo add members } -function registerMessageInRoom(messageId, roomId, isSeen) { - const query = `INSERT INTO app_space_message (message_id, room_id) VALUES ('${messageId}', '${roomId}')`; - bdd.query(query, (err, results, fields) => { - if (err) throw err; - }); +async function registerMessageInRoom(messageId, roomId, isSeen) { + const query = `INSERT INTO app_space_message (message_id, room_id) VALUES (?, ?)`; + const values = [messageId, roomId]; + await execQueryAsync(query, values); updateLastUpdateRoom(roomId); @@ -29,31 +28,19 @@ function incrementNotSeenRoom(roomId) { // todo } -function createThread(roomId, threadName, isDm) { - return new Promise((resolve, reject) => { - const query = `INSERT INTO app_thread - (room_id, thread_name, isDm) - VALUES ( - '${roomId}', - '${threadName}', - '${isDm}', - )`; - bdd.query(query, (err, results, fields) => { - if (err) reject(err); - resolve(results.insertId); - }); - }); - +async function createThread(roomId, threadName, isDm) { + const query = `INSERT INTO app_thread (room_id, thread_name, isDm) VALUES (?, ?, ?)`; + const values = [roomId, threadName, isDm]; + return await execQueryAsync(query, values); // todo add members } -function registerMessageInThread(messageId, threadId, isSeen) { +async function registerMessageInThread(messageId, threadId, isSeen) { // todo check if it is still a thread or should be a room const query = `INSERT IGNORE INTO app_space_message - (message_id, thread_id) VALUES ('${messageId}', '${threadId}')`; - bdd.query(query, (err, results, fields) => { - if (err) throw err; - }); + (message_id, thread_id) VALUES (?, ?)`; + const values = [messageId, threadId]; + await execQueryAsync(query, values); updateLastUpdateThread(threadId); if (!isSeen) { @@ -71,10 +58,10 @@ function incrementNotSeenThread(threadId) { // also increment parent room } -function isRoomGroup(roomId) { +async function isRoomGroup(roomId) { return new Promise((resolve, reject) => { const query = `SELECT isGroup FROM app_room WHERE room_id = '${roomId}'`; - bdd.query(query, (err, results, fields) => { + db.query(query, (err, results, fields) => { if (err) reject(err); resolve(results[0].isGroup); }); @@ -98,5 +85,5 @@ module.exports = { createThread, registerMessageInThread, isRoomGroup, - findSpacesFromMessage -}; \ No newline at end of file + findSpacesFromMessage, +}; diff --git a/back/sql/structure b/back/db/structure similarity index 100% rename from back/sql/structure rename to back/db/structure diff --git a/back/sql/structureV2.sql b/back/db/structureV2.sql similarity index 99% rename from back/sql/structureV2.sql rename to back/db/structureV2.sql index f095126..bc791f6 100644 --- a/back/sql/structureV2.sql +++ b/back/db/structureV2.sql @@ -145,6 +145,7 @@ CREATE TABLE app_space_message ( message_id INT NOT NULL, room_id INT, thread_id INT, + UNIQUE KEY (member_id, room_id, thread_id), FOREIGN KEY (message_id) REFERENCES message(message_id) ON DELETE CASCADE, FOREIGN KEY (room_id) REFERENCES app_room(room_id) ON DELETE SET NULL, FOREIGN KEY (thread_id) REFERENCES app_thread(thread_id) ON DELETE SET NULL diff --git a/back/imap/index.js b/back/imap/index.js index 96eab36..91def64 100644 --- a/back/imap/index.js +++ b/back/imap/index.js @@ -2,9 +2,11 @@ const Imap = require("imap"); const { simpleParser } = require("mailparser"); const inspect = require("util").inspect; const saveMessage = require("./storeMessage").saveMessage; +const registerMessageInApp = require("../app/saveMessage").registerMessageInApp; const imapConfig = require("./config.json").mail; const fs = require("fs"); +const { DEBUG } = require("../utils/debug"); const imap = new Imap({ user: imapConfig.user, password: imapConfig.password, @@ -20,57 +22,56 @@ let shouldReset = false; // let shouldReset = true; if (shouldReset) { - - - const { execQuery, execQueryAsync } = require("../sql/bdd"); - const query = - "SELECT table_name FROM INFORMATION_SCHEMA.tables WHERE table_schema = 'mail'"; + const { execQuery, execQueryAsync } = require("../db/db"); + const query = "SELECT table_name FROM INFORMATION_SCHEMA.tables WHERE table_schema = 'mail'"; execQueryAsync(query).then((results) => { execQuery("SET FOREIGN_KEY_CHECKS=0"); results.map((table) => { execQuery("DELETE FROM " + table.table_name); - }); }); return; } - imap.once("ready", function () { const readOnly = true; imap.openBox("INBOX", readOnly, (err, box) => { // console.log(box); // uidvalidty uidnext, messages total and new - imap.search(["ALL"], function (err, results) { - console.log(results[results.length - 1]); - }); + // imap.search(["ALL"], function (err, results) { + // console.log(results[results.length - 1]); + // }); - const f = imap.fetch(970, { + // const f = imap.fetch(970, { + // size: true, + // envelope: true, + // }); + const promises = []; + const mails = []; + var f = imap.seq.fetch('1:10', { size: true, - envelope: true, - }); - let messageIDs = []; - // var f = imap.seq.fetch('1:3', { - // bodies: 'HEADER.FIELDS (FROM TO SUBJECT DATE)', - // struct: true - // }); + envelope: true + }); f.on("message", function (msg, seqno) { msg.once("attributes", (attrs) => { // todo find boxId const boxId = 1; - messageIDs.push(attrs.envelope.messageId) - saveMessage(attrs, boxId, imap); + mails.push(attrs); + promises.push(saveMessage(attrs, boxId, imap)); }); }); f.once("error", function (err) { - console.log("Fetch error: " + err); + DEBUG.log("Fetch error: " + err); }); - f.once("end", function () { - console.log(messageIDs) - isDone = true; - console.log("Done fetching all messages!"); + f.once("end", async function () { + Promise.all(promises).then(async (res) => { + DEBUG.log("Done fetching all messages!"); + for (let i = 0; i < mails.length; i++) { + await registerMessageInApp(res[i], mails[i]); + } + }); }); - // imap.end() + // imap.end() }); }); diff --git a/back/imap/storeMessage.js b/back/imap/storeMessage.js index e7e615f..7de687f 100644 --- a/back/imap/storeMessage.js +++ b/back/imap/storeMessage.js @@ -1,4 +1,4 @@ -const { getAddresseId } = require("../sql/mail"); +const { getAddresseId } = require("../db/mail"); const { DEBUG } = require("../utils/debug"); const { simpleParser } = require("mailparser"); const moment = require("moment"); @@ -11,95 +11,84 @@ const { registerBodypart, saveBodypart, saveSource, -} = require("../sql/saveMessage"); +} = require("../db/saveMessage"); -const { - createRoom, - registerMessageInRoom, - createThread, - registerMessageInThread, - isRoomGroup, - findSpacesFromMessage, - hasSameMembersAsParent, -} = require("../sql/saveMessageApp"); -const { getFieldId, findRoomByOwner } = require("../sql/mail"); +const { getFieldId } = require("../db/mail"); function saveMessage(attrs, mailboxId, imap) { const envelope = attrs.envelope; - const ts = moment(new Date(envelope.date).getTime()).format( - "YYYY-MM-DD HH:mm:ss" - ); + const ts = moment(new Date(envelope.date).getTime()).format("YYYY-MM-DD HH:mm:ss"); const rfc822size = attrs.size; const messageID = envelope.messageId; - registerMessage(ts, rfc822size, messageID) - .then((messageId) => { - const isSeen = attrs.flags.includes("Seen") ? 1 : 0; // todo verify - const deleted = attrs.flags.includes("Deleted") ? 1 : 0; // todo verify + return new Promise((resolve, reject) => { + registerMessage(ts, rfc822size, messageID) + .then((messageId) => { + const isSeen = attrs.flags.includes("Seen") ? 1 : 0; // todo verify + const deleted = attrs.flags.includes("Deleted") ? 1 : 0; // todo verify - registerMailbox_message( - mailboxId, - attrs.uid, - messageId, - attrs.modseq, - isSeen, - deleted - ); - const f = imap.fetch(attrs.uid, { bodies: "" }); - let buffer = ""; + registerMailbox_message(mailboxId, attrs.uid, messageId, attrs.modseq, isSeen, deleted); + const f = imap.fetch(attrs.uid, { bodies: "" }); + let buffer = ""; - f.on("message", function (msg, seqno) { - msg.on("body", function (stream, info) { - stream.on("data", function (chunk) { - buffer += chunk.toString("utf8"); - }); + f.on("message", function (msg, seqno) { + msg.on("body", function (stream, info) { + stream.on("data", function (chunk) { + buffer += chunk.toString("utf8"); + }); - stream.once("end", () => { - // save raw data - saveSource(messageId, buffer); + stream.once("end", () => { + // save raw data + saveSource(messageId, buffer); - // parse data - simpleParser(buffer, async (err, parsed) => { - saveFromParsedData(parsed, messageId); + // parse data + simpleParser(buffer, async (err, parsed) => { + saveFromParsedData(parsed, messageId) + .then(() => { + resolve(messageId); + }) + .catch((err) => { + reject(err); + }); + }); }); }); }); + f.once("error", function (err) { + console.log("Fetch error: " + err); + }); + f.once("end", function () { + DEBUG.log("Done fetching data of "+messageID); + }); + }) + .catch((err) => { + DEBUG.log("Unable to register message: " + err); + reject(err); }); - f.once("error", function (err) { - console.log("Fetch error: " + err); - }); - f.once("end", function () { - console.log("Done fetching all messages!"); - }); - }) - .catch((err) => { - DEBUG.log("Unable to register message: " + err); - }); + }); } -function saveFromParsedData(parsed, messageId) { - fs.writeFileSync("./test.txt", JSON.stringify(parsed)); +async function saveFromParsedData(parsed, messageId) { + const promises = []; Object.keys(parsed).forEach((key) => { if (["from", "to", "cc", "bcc", "reply-to"].includes(key)) { - // save address field - getFieldId(key).then((fieldId) => { - parsed[key].value.forEach((addr, nb) => { - getAddresseId(addr.address, addr.name).then((addressId) => { - saveAddress_fields(messageId, fieldId, addressId, nb); + promises.push( + // save address field + getFieldId(key).then((fieldId) => { + parsed[key].value.forEach((addr, nb) => { + getAddresseId(addr.address, addr.name).then(async (addressId) => { + await saveAddress_fields(messageId, fieldId, addressId, nb); + }); }); - }); - }); + }), + ); } else if (["subject", "inReplyTo"].includes(key)) { // todo : "references" - getFieldId(key).then((fieldId) => { - saveHeader_fields( - messageId, - fieldId, - undefined, - undefined, - parsed[key] - ); - }); + promises.push( + getFieldId(key).then(async (fieldId) => { + await saveHeader_fields(messageId, fieldId, undefined, undefined, parsed[key]); + }), + ); } else if (["html", "text", "textAsHtml"].includes(key)) { const hash = "0"; const size = "0"; @@ -116,9 +105,7 @@ function saveFromParsedData(parsed, messageId) { // }); } else if (key == "attachments") { // todo - } else if ( - ["date", "messageId", "headers", "headerLines"].includes(key) - ) { + } else if (["date", "messageId", "headers", "headerLines"].includes(key)) { // messageId and date are already saved // other field are not improted and can be retrieved in source return; @@ -127,104 +114,10 @@ function saveFromParsedData(parsed, messageId) { return; } }); + return Promise.all(promises); // todo when transfered } -function haveSameReceivers() { - // take cc and to -} - -/** - * take object address and join mailbox and host to return mailbox@host - */ -function createAddress(elt) { - return `${elt.mailbox}@${elt.host}`; -} - -function registerMessageInApp(envelope, messageId, isSeen) { - getAddresseId(createAddress(envelope.sender[0])).then((ownerId) => { - if (envelope.inReplyTo) { - registerReplyMessage(envelope, messageId, isSeen); - } else { - findRoomByOwner(ownerId).then((res) => { - if (res.length == 0) { - createRoom(envelope.subject, ownerId).then((roomId) => { - registerMessageInRoom(messageId, roomId, isSeen); - }); - } else { - registerMessageInRoom(messageId, res[0].room_id, isSeen); - } - }); - } - }); -} - -function registerReplyMessage(envelope, messageId, isSeen) { - const messageID = envelope.messageId; - findSpacesFromMessage(messageId).then((spaces) => { - // todo sub thread will not be in index 0 so look in all indexes - if (spaces.length == 0) { - // no space, so is a transfer - // todo test if members of transferred message are included - } else if (spaces[0].thread_id) { - registerMessageInThread(messageId, spaces[0].thread_id, isSeen); - // todo - // if (hasSameMembersAsParent(messageID, envelope.inReplyTo)) { - // // register new message in thread - // // possibly convert to room only if parent is channel - // } else { - // // todo create sub thread - // } - } else if (spaces[0].room_id) { - // message in room and not thread - isRoomGroup(spaces[0].room_id).then((isGroup) => { - if (isGroup) { - if (hasSameMembersAsParent(messageID, envelope.inReplyTo)) { - registerMessageInRoom( - messageId, - spaces[0].room_id, - isSeen - ); - } else { - // group and not the same member as the reply - // some recipient has been removed create a thread - const isDm = 0; // todo - createThread( - space[0].room_id, - envelope.subject, - isSeen, - isDm - ).then((threadId) => { - registerMessageInThread( - messageId, - threadId, - isSeen - ); - }); - } - } else { - // reply from channel - // todo - // if (messageInRoom == 1) { // was new channel transform to group - // // register new message in group - // } else if (sender == owner) { // correction from the original sender - // // leave in the same channel - // } else { // user response to announcement - // // create new thread - // } - } - }); - } - }); - - // `SELECT app_room_messages.room, app_room_messages.thread FROM app_room_messages INNER JOIN messages WHERE messages.messageID = '${envelope.inReplyTo}' AND app_room_messages.message = messages.id`; -} - -function keyNormalizer(key) { - // todo - return key; -} - module.exports = { saveMessage, }; diff --git a/back/sql/database.png b/back/sql/database.png deleted file mode 100644 index 2b16605542e9123c55f04c2d77764de6347566b3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 144048 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 BUg!V- diff --git a/back/utils/debug.js b/back/utils/debug.js index e7e5599..ff14596 100644 --- a/back/utils/debug.js +++ b/back/utils/debug.js @@ -1,9 +1,9 @@ -const DEBUG = (function() { - const timestamp = function(){}; - timestamp.toString = () => "[DEBUG " + new Date().toLocaleDateString() + "]"; - return { log: console.log.bind(console, "%s", timestamp) }; +const DEBUG = (function () { + const timestamp = function () {}; + timestamp.toString = () => "[" + new Date().toLocaleString() + "]"; + return { log: console.log.bind(console, "%s", timestamp) }; })(); module.exports = { - DEBUG -} \ No newline at end of file + DEBUG, +};