mail/back/db/mail.js
2023-03-29 16:23:24 +02:00

42 lines
1.4 KiB
JavaScript

const { execQueryAsync, execQueryAsyncWithId } = require("./db.js");
async function getAddresseId(email, name) {
const localpart = email.split("@")[0];
const domain = email.split("@")[1];
const query = `INSERT INTO address
(address_name, localpart, domain, email) VALUES (?, ?, ?, ?)
ON DUPLICATE KEY UPDATE address_name = ?, address_id = LAST_INSERT_ID(address_id)`;
const values = [name, localpart, domain, email, name];
return await execQueryAsyncWithId(query, values);
}
async function getFieldId(field) {
const query = `INSERT INTO field_name (field_name) VALUES (?) ON DUPLICATE KEY UPDATE field_id=LAST_INSERT_ID(field_id)`;
const values = [field]
return await execQueryAsyncWithId(query, values);
}
async function findRoomByOwner(ownerId) {
const query = `SELECT room_id FROM app_room WHERE owner_id = ?`;
const values = [ownerId];
return await execQueryAsync(query, values);
}
async function getUserIdOfMailbox(boxId) {
const query = `
SELECT app_account.user_id
FROM mailbox
INNER JOIN app_account ON app_account.account_id = mailbox.account_id
WHERE mailbox.mailbox_id = ?
`;
const values = [boxId];
return await execQueryAsync(query, values);
}
module.exports = {
getAddresseId,
getFieldId,
findRoomByOwner,
getUserIdOfMailbox
};