update backend api architecture
This commit is contained in:
parent
29b4b7bfeb
commit
12e508c7cb
@ -6,6 +6,8 @@ import { getLastMsgData, getRoomOwner } from "../db/Room-db";
|
||||
import emailManager from "../mails/EmailManager";
|
||||
import MailBuilder from "../mails/utils/mailBuilder";
|
||||
import { getAddresses } from "../db/utils/mail";
|
||||
import { getMembers, getMessages, getRooms } from "../db/api-db";
|
||||
import logger from "../system/Logger";
|
||||
|
||||
function rmUserFromAddrs(addresses: { email: string }[], user: string) {
|
||||
let index = addresses.findIndex((a) => a.email == user);
|
||||
@ -58,4 +60,39 @@ export default class Room {
|
||||
res.status(statusCode.FORBIDDEN).send({ error: "Cannot add a new message in a room or a channel." });
|
||||
}
|
||||
}
|
||||
|
||||
static async getAll(body, res: Response) {
|
||||
const { mailboxId, offset, limit } = body;
|
||||
getRooms(mailboxId)
|
||||
.then((rooms) => {
|
||||
res.status(statusCode.OK).json(rooms);
|
||||
})
|
||||
.catch((err) => {
|
||||
logger.err(err);
|
||||
res.status(statusCode.INTERNAL_SERVER_ERROR);
|
||||
});
|
||||
}
|
||||
|
||||
static async getMessages(body, res: Response) {
|
||||
const { roomId } = body;
|
||||
getMessages(roomId)
|
||||
.then((messages) => {
|
||||
res.status(statusCode.OK).json(messages);
|
||||
})
|
||||
.catch((err) => {
|
||||
logger.err(err);
|
||||
res.status(statusCode.INTERNAL_SERVER_ERROR);
|
||||
});
|
||||
}
|
||||
|
||||
static async getMembers(body, res) {
|
||||
const { roomId } = body;
|
||||
getMembers(roomId).then((addresses) => {
|
||||
res.status(statusCode.OK).json(addresses);
|
||||
}).catch((err) => {
|
||||
logger.err(err)
|
||||
res.status(statusCode.INTERNAL_SERVER_ERROR);
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -1,13 +0,0 @@
|
||||
import statusCode from "../utils/statusCodes";
|
||||
import { getMembers } from "../db/api-db";
|
||||
import logger from "../system/Logger";
|
||||
|
||||
export async function members(body, res) {
|
||||
const { roomId } = body;
|
||||
getMembers(roomId).then((addresses) => {
|
||||
res.status(statusCode.OK).json(addresses);
|
||||
}).catch((err) => {
|
||||
logger.err(err)
|
||||
res.status(statusCode.INTERNAL_SERVER_ERROR);
|
||||
});
|
||||
}
|
@ -1,16 +0,0 @@
|
||||
import statusCode from "../utils/statusCodes";
|
||||
import { getMessages } from "../db/api-db";
|
||||
import logger from "../system/Logger";
|
||||
import { Response } from "express";
|
||||
|
||||
export async function messages(body, res: Response) {
|
||||
const { roomId } = body;
|
||||
getMessages(roomId)
|
||||
.then((messages) => {
|
||||
res.status(statusCode.OK).json(messages);
|
||||
})
|
||||
.catch((err) => {
|
||||
logger.err(err);
|
||||
res.status(statusCode.INTERNAL_SERVER_ERROR);
|
||||
});
|
||||
}
|
@ -1,14 +0,0 @@
|
||||
import statusCode from "../utils/statusCodes";
|
||||
import { getRooms } from "../db/api-db";
|
||||
import logger from "../system/Logger";
|
||||
import { Response } from "express";
|
||||
|
||||
export async function rooms(body, res: Response) {
|
||||
const { mailboxId, offset, limit } = body;
|
||||
getRooms(mailboxId).then((rooms) => {
|
||||
res.status(statusCode.OK).json(rooms);
|
||||
}).catch((err) => {
|
||||
logger.err(err)
|
||||
res.status(statusCode.INTERNAL_SERVER_ERROR);
|
||||
});
|
||||
}
|
@ -35,7 +35,6 @@ export default class Mailbox {
|
||||
this.box = (await getMailbox(this.id))[0];
|
||||
const isReadOnly = false;
|
||||
this.imap.openBox(this.boxName, isReadOnly, (err, box) => {
|
||||
console.log(typeof(box.highestmodseq))
|
||||
if (err) logger.err(err);
|
||||
|
||||
// sync messages and flags
|
||||
|
@ -1,10 +1,7 @@
|
||||
import express from "express";
|
||||
const router = express.Router();
|
||||
|
||||
import { rooms } from "../abl/rooms";
|
||||
import Message from "../abl/Message-abl";
|
||||
import { messages } from "../abl/messages";
|
||||
import { members } from "../abl/members";
|
||||
import Account from "../abl/Account-abl";
|
||||
import validator from "../validator/validator";
|
||||
import Room from "../abl/Room-abl";
|
||||
@ -21,21 +18,21 @@ router.get("/accounts", async (req, res) => {
|
||||
*/
|
||||
router.get("/:mailboxId/rooms", async (req, res) => {
|
||||
// todo offet limit
|
||||
await validator.validate("getRooms", req.params, res, rooms);
|
||||
await validator.validate("getRooms", req.params, res, Room.getAll);
|
||||
});
|
||||
|
||||
/**
|
||||
* Return all messages from a room
|
||||
*/
|
||||
router.get("/:roomId/messages", async (req, res) => {
|
||||
await validator.validate("getMessages", req.params, res, messages);
|
||||
await validator.validate("getMessages", req.params, res, Room.getMessages);
|
||||
});
|
||||
|
||||
/**
|
||||
* Return all members from a room
|
||||
*/
|
||||
router.get("/:roomId/members", async (req, res) => {
|
||||
await validator.validate("getMembers", req.params, res, members);
|
||||
await validator.validate("getMembers", req.params, res, Room.getMembers);
|
||||
});
|
||||
|
||||
/**
|
||||
|
Loading…
Reference in New Issue
Block a user