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 emailManager from "../mails/EmailManager";
|
||||||
import MailBuilder from "../mails/utils/mailBuilder";
|
import MailBuilder from "../mails/utils/mailBuilder";
|
||||||
import { getAddresses } from "../db/utils/mail";
|
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) {
|
function rmUserFromAddrs(addresses: { email: string }[], user: string) {
|
||||||
let index = addresses.findIndex((a) => a.email == user);
|
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." });
|
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];
|
this.box = (await getMailbox(this.id))[0];
|
||||||
const isReadOnly = false;
|
const isReadOnly = false;
|
||||||
this.imap.openBox(this.boxName, isReadOnly, (err, box) => {
|
this.imap.openBox(this.boxName, isReadOnly, (err, box) => {
|
||||||
console.log(typeof(box.highestmodseq))
|
|
||||||
if (err) logger.err(err);
|
if (err) logger.err(err);
|
||||||
|
|
||||||
// sync messages and flags
|
// sync messages and flags
|
||||||
|
@ -1,10 +1,7 @@
|
|||||||
import express from "express";
|
import express from "express";
|
||||||
const router = express.Router();
|
const router = express.Router();
|
||||||
|
|
||||||
import { rooms } from "../abl/rooms";
|
|
||||||
import Message from "../abl/Message-abl";
|
import Message from "../abl/Message-abl";
|
||||||
import { messages } from "../abl/messages";
|
|
||||||
import { members } from "../abl/members";
|
|
||||||
import Account from "../abl/Account-abl";
|
import Account from "../abl/Account-abl";
|
||||||
import validator from "../validator/validator";
|
import validator from "../validator/validator";
|
||||||
import Room from "../abl/Room-abl";
|
import Room from "../abl/Room-abl";
|
||||||
@ -21,21 +18,21 @@ router.get("/accounts", async (req, res) => {
|
|||||||
*/
|
*/
|
||||||
router.get("/:mailboxId/rooms", async (req, res) => {
|
router.get("/:mailboxId/rooms", async (req, res) => {
|
||||||
// todo offet limit
|
// 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
|
* Return all messages from a room
|
||||||
*/
|
*/
|
||||||
router.get("/:roomId/messages", async (req, res) => {
|
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
|
* Return all members from a room
|
||||||
*/
|
*/
|
||||||
router.get("/:roomId/members", async (req, res) => {
|
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