import { execQueryAsync } from "./db"; import { queryCcId, queryFromId, queryToId } from "./utils/addressQueries"; export async function getRoomOwner(roomId: number) { const query = ` SELECT address.email FROM app_room INNER JOIN address ON address.address_id = app_room.owner_id WHERE app_room.room_id = ? `; const values = [roomId]; return await execQueryAsync(query, values); } /** * get all the data needed to reply to a message in a room */ export async function getLastMsgData(roomId: number) { const query = ` SELECT msg.message_id AS id, GROUP_CONCAT(fromT.address_id) AS fromA, GROUP_CONCAT(toT.address_id) AS toA, GROUP_CONCAT(ccT.address_id) AS ccA, subjectT.value AS subject, content.text AS content, message.idate AS date, message.messageID AS messageID FROM app_room_message msg ${queryFromId} fromT ON msg.message_id = fromT.message_id ${queryToId} toT ON msg.message_id = toT.message_id ${queryCcId} ccT ON msg.message_id = ccT.message_id LEFT JOIN ( SELECT header_field.message_id, header_field.value FROM header_field INNER JOIN field_name WHERE field_name.field_id = header_field.field_id AND field_name.field_name = 'subject' ) subjectT ON msg.message_id = subjectT.message_id LEFT JOIN ( SELECT bodypart.text, header_field.message_id FROM bodypart INNER JOIN header_field INNER JOIN field_name WHERE field_name.field_id = header_field.field_id AND field_name.field_name = 'html' AND bodypart.bodypart_id = header_field.bodypart_id ) content ON msg.message_id = content.message_id INNER JOIN message ON message.message_id = msg.message_id WHERE msg.room_id = ? GROUP BY msg.message_id ORDER BY message.idate DESC LIMIT 1 `; const values = [roomId]; return await execQueryAsync(query, values); } export async function getRoomOnMessageId(messageId: number) { const query = `SELECT room_id FROM app_room_message WHERE message_id = ?`; const values = [messageId]; return await execQueryAsync(query, values); } export async function getRoomNbMessage(roomId: number) { const query = `SELECT COUNT(room_id) AS nbMessage FROM app_room_message WHERE room_id = ?`; const values = [roomId]; return await execQueryAsync(query, values); } export async function deleteRoom(roomId: number) { const query = `DELETE FROM app_room WHERE room_id = ?`; const values = [roomId]; return await execQueryAsync(query, values); }