import { transformEmojis } from "../../utils/string"; import { execQuery, execQueryAsync, execQueryAsyncWithId } from "../db"; export async function registerMessage(timestamp: string, rfc822size: number, messageID: string) { 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); } export function registerMailbox_message( mailboxId: number, uid: number, messageId: number, modseq: number, seen: boolean, deleted: boolean, ) { 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); } export function registerBodypart(messageId: number, part: string, bodypartId: number, bytes: number, nbLines: null) { 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); } export async function saveBodypart(bytes, hash, text, data) { text = transformEmojis(text); const query = `INSERT IGNORE INTO bodypart (bytes, hash, text, data) VALUES (?, ?, ?, ?)`; const values = [bytes, hash, text, data]; return await execQueryAsyncWithId(query, values); } export async function saveHeader_fields( messageId: number, fieldId: number, bodypartId: number, part: string, value: string, ) { value = transformEmojis(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); } export async function saveAddress_fields(messageId: number, fieldId: number, addressId: number, number: 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); } export function saveSource(messageId: number, content: string) { content = transformEmojis(content); const query = ` INSERT INTO source (message_id, content) VALUES (?, ?) ON DUPLICATE KEY UPDATE content = ? `; const values = [messageId, content, content]; execQuery(query, values); }