rename api to api-db
This commit is contained in:
parent
4cc53752d7
commit
dcb7075dca
@ -1,5 +1,5 @@
|
|||||||
import { Response } from "express";
|
import { Response } from "express";
|
||||||
import { getAccounts, registerAccount } from "../db/api";
|
import { getAccounts, registerAccount } from "../db/api-db";
|
||||||
import { getAddresseId } from "../db/utils/mail";
|
import { getAddresseId } from "../db/utils/mail";
|
||||||
import statusCodes from "../utils/statusCodes";
|
import statusCodes from "../utils/statusCodes";
|
||||||
|
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
import statusCode from "../utils/statusCodes";
|
import statusCode from "../utils/statusCodes";
|
||||||
import { getMembers } from "../db/api";
|
import { getMembers } from "../db/api-db";
|
||||||
import logger from "../system/Logger";
|
import logger from "../system/Logger";
|
||||||
|
|
||||||
export async function members(body, res) {
|
export async function members(body, res) {
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
import statusCode from "../utils/statusCodes";
|
import statusCode from "../utils/statusCodes";
|
||||||
import { getMessages } from "../db/api";
|
import { getMessages } from "../db/api-db";
|
||||||
import logger from "../system/Logger";
|
import logger from "../system/Logger";
|
||||||
import { Response } from "express";
|
import { Response } from "express";
|
||||||
|
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
import statusCode from "../utils/statusCodes";
|
import statusCode from "../utils/statusCodes";
|
||||||
import { getRooms } from "../db/api";
|
import { getRooms } from "../db/api-db";
|
||||||
import logger from "../system/Logger";
|
import logger from "../system/Logger";
|
||||||
import { Response } from "express";
|
import { Response } from "express";
|
||||||
|
|
||||||
|
145
back/db/api.ts
145
back/db/api.ts
@ -1,145 +0,0 @@
|
|||||||
import { execQueryAsync, execQueryAsyncWithId } from "./db";
|
|
||||||
import { queryCcId, queryToId, queryFromId } from "./utils/addressQueries";
|
|
||||||
|
|
||||||
export async function registerAccount(userId, pwd, xoauth, xoauth2, host, port, tls) {
|
|
||||||
const query = `
|
|
||||||
INSERT INTO app_account
|
|
||||||
(user_id, account_pwd, xoauth, xoauth2, host, port, tls) VALUES (?, ?, ?, ?, ?, ?, ?)
|
|
||||||
`;
|
|
||||||
const values = [userId, pwd, xoauth, xoauth2, host, port, tls];
|
|
||||||
return await execQueryAsyncWithId(query, values);
|
|
||||||
}
|
|
||||||
|
|
||||||
export async function getAccounts() {
|
|
||||||
// todo mailbox or account id ?
|
|
||||||
const query = `
|
|
||||||
SELECT
|
|
||||||
mailbox.mailbox_id AS id,
|
|
||||||
address.email
|
|
||||||
FROM app_account
|
|
||||||
INNER JOIN address
|
|
||||||
INNER JOIN mailbox
|
|
||||||
WHERE
|
|
||||||
address.address_id = app_account.user_id AND
|
|
||||||
mailbox.account_id = app_account.account_id
|
|
||||||
`;
|
|
||||||
const values = [];
|
|
||||||
return await execQueryAsync(query, values);
|
|
||||||
}
|
|
||||||
|
|
||||||
export async function getRooms(mailboxId) {
|
|
||||||
const query = `
|
|
||||||
SELECT
|
|
||||||
room.room_id AS id,
|
|
||||||
room.room_name AS roomName,
|
|
||||||
address.email AS user,
|
|
||||||
room.owner_id AS userId,
|
|
||||||
COUNT(notSeen.message_id) AS notSeen,
|
|
||||||
room.room_type AS roomType,
|
|
||||||
mailbox_message.mailbox_id AS mailboxId,
|
|
||||||
app_thread.parent_id
|
|
||||||
FROM app_room room
|
|
||||||
INNER JOIN message ON message.message_id = room.message_id
|
|
||||||
INNER JOIN mailbox_message ON mailbox_message.message_id = message.message_id
|
|
||||||
INNER JOIN address ON address.address_id = room.owner_id
|
|
||||||
LEFT JOIN app_thread ON room.room_id = app_thread.room_id
|
|
||||||
LEFT JOIN (
|
|
||||||
SELECT app_room_message.room_id, app_room_message.message_id
|
|
||||||
FROM app_room_message
|
|
||||||
LEFT JOIN flag ON flag.message_id = app_room_message.message_id
|
|
||||||
LEFT JOIN flag_name ON flag.flag_id = flag_name.flag_id
|
|
||||||
WHERE flag_name.flag_name != "\\\\Seen" OR flag.message_id IS NULL
|
|
||||||
) notSeen ON notSeen.room_id = room.room_id
|
|
||||||
WHERE
|
|
||||||
mailbox_message.mailbox_id = ?
|
|
||||||
GROUP BY room.room_id
|
|
||||||
ORDER BY room.lastUpdate DESC
|
|
||||||
`;
|
|
||||||
// todo parent_id replace to root_id
|
|
||||||
const query2 = `
|
|
||||||
SELECT
|
|
||||||
room.room_id AS id,
|
|
||||||
COUNT(t.message_id) AS notSeen
|
|
||||||
FROM app_room room
|
|
||||||
INNER JOIN message ON message.message_id = room.message_id
|
|
||||||
INNER JOIN mailbox_message ON mailbox_message.message_id = message.message_id
|
|
||||||
INNER JOIN address ON address.address_id = room.owner_id
|
|
||||||
LEFT JOIN (
|
|
||||||
SELECT app_room_message.room_id, app_room_message.message_id
|
|
||||||
FROM app_room_message
|
|
||||||
INNER JOIN flag ON flag.message_id = app_room_message.message_id
|
|
||||||
INNER JOIN flag_name ON flag.flag_id = flag_name.flag_id
|
|
||||||
WHERE flag_name.flag_name = "\\\\Seen"
|
|
||||||
) t ON t.room_id = room.room_id
|
|
||||||
GROUP BY room.room_id
|
|
||||||
`;
|
|
||||||
const values = [mailboxId];
|
|
||||||
return await execQueryAsync(query, values);
|
|
||||||
}
|
|
||||||
|
|
||||||
export async function getMessages(roomId: number) {
|
|
||||||
// todo attachements name
|
|
||||||
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,
|
|
||||||
GROUP_CONCAT(flagT.flag_name) AS flags
|
|
||||||
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
|
|
||||||
|
|
||||||
LEFT JOIN flag ON flag.message_id = msg.message_id
|
|
||||||
LEFT JOIN flag_name flagT ON flagT.flag_id = flag.flag_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;
|
|
||||||
`;
|
|
||||||
const values = [roomId];
|
|
||||||
return await execQueryAsync(query, values);
|
|
||||||
}
|
|
||||||
|
|
||||||
export async function getMembers(roomId) {
|
|
||||||
const query = `
|
|
||||||
SELECT
|
|
||||||
address.address_id AS id,
|
|
||||||
address.address_name AS name,
|
|
||||||
address.email AS email,
|
|
||||||
field_name.field_name as type
|
|
||||||
FROM app_room
|
|
||||||
INNER JOIN address_field ON address_field.message_id = app_room.message_id
|
|
||||||
INNER JOIN address ON address.address_id = address_field.address_id
|
|
||||||
INNER JOIN field_name ON field_name.field_id = address_field.field_id
|
|
||||||
WHERE app_room.room_id = ?;
|
|
||||||
`;
|
|
||||||
const values = [roomId];
|
|
||||||
return await execQueryAsync(query, values);
|
|
||||||
}
|
|
718
back/package-lock.json
generated
718
back/package-lock.json
generated
File diff suppressed because it is too large
Load Diff
@ -6,6 +6,7 @@
|
|||||||
"clean": "rm -rf build"
|
"clean": "rm -rf build"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
"@databases/mysql-test": "^4.0.2",
|
||||||
"ajv": "^8.12.0",
|
"ajv": "^8.12.0",
|
||||||
"ajv-formats": "^2.1.1",
|
"ajv-formats": "^2.1.1",
|
||||||
"colors": "^1.4.0",
|
"colors": "^1.4.0",
|
||||||
|
Loading…
Reference in New Issue
Block a user