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 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 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 (?, ?, ?, ?, ?) `; const values = [messageId, part, bodypartId, bytes, nbLines]; execQuery(query, values); } async function saveBodypart(bytes, hash, text, data) { const query = `INSERT IGNORE INTO bodypart (bytes, hash, text, data) VALUES (?, ?, ?,)`; const values = [bytes, hash, text, data]; return await execQueryAsyncWithId(query, values); } 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 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 values = [messageId, fieldId, addressId, number]; return await execQueryAsync(query, values); } function saveSource(messageId, content) { const query = ` INSERT INTO source (message_id, content) VALUES (?, ?) ON DUPLICATE KEY UPDATE content = ? `; const values = [messageId, content, content]; execQuery(query, values); } module.exports = { registerMessage, registerMailbox_message, saveHeader_fields, saveAddress_fields, registerBodypart, saveBodypart, saveSource }