86 lines
3.0 KiB
TypeScript
86 lines
3.0 KiB
TypeScript
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 registerFlag(messageId: number, flagId: number) {
|
|
const query = `INSERT IGNORE INTO flag_name (message_id, flag_id) VALUES (?, ?)`;
|
|
const values = [messageId, flagId];
|
|
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);
|
|
}
|