reply message from thread and room
This commit is contained in:
@@ -1,4 +1,5 @@
|
||||
import { execQueryAsync } from "./db";
|
||||
import { queryCcId, queryFromId, queryToId } from "./utils/addressQueries";
|
||||
|
||||
export async function getRoomOwner(roomId: number) {
|
||||
const query = `
|
||||
@@ -10,3 +11,51 @@ export async function getRoomOwner(roomId: number) {
|
||||
const values = [roomId];
|
||||
return await execQueryAsync(query, values);
|
||||
}
|
||||
|
||||
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);
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { execQueryAsync, execQueryAsyncWithId } from "../db";
|
||||
|
||||
export async function getAddresseId(email: string, name?: string): Promise<number> {
|
||||
export async function getAddressId(email: string, name?: string): Promise<number> {
|
||||
const localpart = email.split("@")[0];
|
||||
const domain = email.split("@")[1];
|
||||
const query = `INSERT INTO address
|
||||
@@ -10,6 +10,12 @@ export async function getAddresseId(email: string, name?: string): Promise<numbe
|
||||
return await execQueryAsyncWithId(query, values);
|
||||
}
|
||||
|
||||
export async function getAddresses(ids: number | number[]): Promise<{ id: number, email: string }[]> {
|
||||
const query = `SELECT address_id AS id, email FROM address WHERE address_id IN (?)`;
|
||||
const values = [ids];
|
||||
return await execQueryAsync(query, values);
|
||||
}
|
||||
|
||||
export async function getFieldId(field: string): Promise<number> {
|
||||
const query = `INSERT INTO field_name (field_name) VALUES (?) ON DUPLICATE KEY UPDATE field_id=LAST_INSERT_ID(field_id)`;
|
||||
const values = [field];
|
||||
@@ -22,7 +28,7 @@ export async function getFlagId(flag: string): Promise<number> {
|
||||
return await execQueryAsyncWithId(query, values);
|
||||
}
|
||||
|
||||
export async function getMessageIdOnUid(uid: number): Promise<{message_id: number}[]> {
|
||||
export async function getMessageIdOnUid(uid: number): Promise<{ message_id: number }[]> {
|
||||
const query = `SELECT message_id FROM mailbox_message WHERE uid = ?`;
|
||||
const values = [uid];
|
||||
return await execQueryAsync(query, values);
|
||||
|
||||
Reference in New Issue
Block a user