change full archi api backend
This commit is contained in:
parent
12e508c7cb
commit
22fb12e6d6
@ -1,6 +1,7 @@
|
||||
import { Response } from "express";
|
||||
import { getAccounts, registerAccount } from "../db/api-db";
|
||||
import { getAccounts, getRooms, registerAccount } from "../db/api-db";
|
||||
import { getAddressId } from "../db/utils/mail";
|
||||
import logger from "../system/Logger";
|
||||
import statusCodes from "../utils/statusCodes";
|
||||
|
||||
export default class Account {
|
||||
@ -23,4 +24,16 @@ export default class Account {
|
||||
});
|
||||
// todo change mailbox to account
|
||||
}
|
||||
|
||||
static async getRooms(body, res: Response) {
|
||||
const { mailboxId, offset, limit } = body;
|
||||
getRooms(mailboxId)
|
||||
.then((rooms) => {
|
||||
res.status(statusCodes.OK).json(rooms);
|
||||
})
|
||||
.catch((err) => {
|
||||
logger.err(err);
|
||||
res.status(statusCodes.INTERNAL_SERVER_ERROR);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
@ -61,18 +61,6 @@ export default class Room {
|
||||
}
|
||||
}
|
||||
|
||||
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)
|
||||
|
28
back/routes/account.ts
Normal file
28
back/routes/account.ts
Normal file
@ -0,0 +1,28 @@
|
||||
import express from "express";
|
||||
import Account from "../abl/Account-abl";
|
||||
import validator from "../validator/validator";
|
||||
const router = express.Router();
|
||||
|
||||
/**
|
||||
* Return all mailboxes and folders for an user
|
||||
*/
|
||||
router.get("/getAll", async (req, res) => {
|
||||
await validator.validate("getAccounts", req.params, res, Account.getAll);
|
||||
});
|
||||
|
||||
/**
|
||||
* Register a new mailbox inside the app
|
||||
*/
|
||||
router.post("/create", async (req, res) => {
|
||||
await validator.validate("createAccount", req.body, res, Account.register);
|
||||
});
|
||||
|
||||
/**
|
||||
* Return all rooms from a mailbox
|
||||
*/
|
||||
router.get("/:mailboxId/rooms", async (req, res) => {
|
||||
// todo offet limit
|
||||
await validator.validate("getRooms", req.params, res, Account.getRooms);
|
||||
});
|
||||
|
||||
export default router;
|
@ -1,57 +0,0 @@
|
||||
import express from "express";
|
||||
const router = express.Router();
|
||||
|
||||
import Message from "../abl/Message-abl";
|
||||
import Account from "../abl/Account-abl";
|
||||
import validator from "../validator/validator";
|
||||
import Room from "../abl/Room-abl";
|
||||
|
||||
/**
|
||||
* Return all mailboxes and folders for an user
|
||||
*/
|
||||
router.get("/accounts", async (req, res) => {
|
||||
await validator.validate("getAccounts", req.params, res, Account.getAll);
|
||||
});
|
||||
|
||||
/**
|
||||
* Return all rooms from a mailbox
|
||||
*/
|
||||
router.get("/:mailboxId/rooms", async (req, res) => {
|
||||
// todo offet limit
|
||||
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, Room.getMessages);
|
||||
});
|
||||
|
||||
/**
|
||||
* Return all members from a room
|
||||
*/
|
||||
router.get("/:roomId/members", async (req, res) => {
|
||||
await validator.validate("getMembers", req.params, res, Room.getMembers);
|
||||
});
|
||||
|
||||
/**
|
||||
* Register a new mailbox inside the app
|
||||
*/
|
||||
router.post("/account", async (req, res) => {
|
||||
await validator.validate("createAccount", req.body, res, Account.register);
|
||||
});
|
||||
|
||||
router.post("/addFlag", async (req, res) => {
|
||||
await validator.validate("addFlag", req.body, res, Message.addFlag);
|
||||
});
|
||||
|
||||
router.post("/removeFlag", async (req, res) => {
|
||||
await validator.validate("removeFlag", req.body, res, Message.removeFlag);
|
||||
});
|
||||
|
||||
router.post("/response", async (req, res) => {
|
||||
await validator.validate("response", req.body, res, Room.response);
|
||||
});
|
||||
|
||||
export default router;
|
15
back/routes/message.ts
Normal file
15
back/routes/message.ts
Normal file
@ -0,0 +1,15 @@
|
||||
import express from "express";
|
||||
import Message from "../abl/Message-abl";
|
||||
import validator from "../validator/validator";
|
||||
const router = express.Router();
|
||||
|
||||
router.post("/addFlag", async (req, res) => {
|
||||
await validator.validate("addFlag", req.body, res, Message.addFlag);
|
||||
});
|
||||
|
||||
router.post("/removeFlag", async (req, res) => {
|
||||
await validator.validate("removeFlag", req.body, res, Message.removeFlag);
|
||||
});
|
||||
|
||||
|
||||
export default router;
|
24
back/routes/room.ts
Normal file
24
back/routes/room.ts
Normal file
@ -0,0 +1,24 @@
|
||||
import express from "express";
|
||||
import Room from "../abl/Room-abl";
|
||||
import validator from "../validator/validator";
|
||||
const router = express.Router();
|
||||
|
||||
/**
|
||||
* Return all messages from a room
|
||||
*/
|
||||
router.get("/messages", async (req, res) => {
|
||||
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, Room.getMembers);
|
||||
});
|
||||
|
||||
router.post("/response", async (req, res) => {
|
||||
await validator.validate("response", req.body, res, Room.response);
|
||||
});
|
||||
|
||||
export default router;
|
@ -2,8 +2,10 @@ import express from "express";
|
||||
import cors from "cors";
|
||||
const app = express();
|
||||
import { execQueryAsync, execQuery } from "./db/db";
|
||||
import mailRouter from "./routes/mail";
|
||||
import emailManager from "./mails/EmailManager";
|
||||
import accountRouter from "./routes/account";
|
||||
import roomRouter from "./routes/room";
|
||||
import messageRouter from "./routes/message";
|
||||
|
||||
app.use(express.json());
|
||||
app.use(
|
||||
@ -14,8 +16,11 @@ app.use(
|
||||
app.use(cors());
|
||||
app.listen(process.env.PORT || 5500);
|
||||
|
||||
app.use("/api/mail", mailRouter);
|
||||
app.use("/api/mailbox", accountRouter);
|
||||
app.use("/api/room", roomRouter);
|
||||
app.use("/api/message", messageRouter);
|
||||
|
||||
// create imap and smtp instances for each account
|
||||
emailManager.init();
|
||||
|
||||
// debug reset all tables
|
||||
|
Loading…
Reference in New Issue
Block a user