Compare commits
2 Commits
12e508c7cb
...
8f980748b5
Author | SHA1 | Date | |
---|---|---|---|
|
8f980748b5 | ||
|
22fb12e6d6 |
@ -1,6 +1,7 @@
|
|||||||
import { Response } from "express";
|
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 { getAddressId } from "../db/utils/mail";
|
||||||
|
import logger from "../system/Logger";
|
||||||
import statusCodes from "../utils/statusCodes";
|
import statusCodes from "../utils/statusCodes";
|
||||||
|
|
||||||
export default class Account {
|
export default class Account {
|
||||||
@ -23,4 +24,16 @@ export default class Account {
|
|||||||
});
|
});
|
||||||
// todo change mailbox to 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) {
|
static async getMessages(body, res: Response) {
|
||||||
const { roomId } = body;
|
const { roomId } = body;
|
||||||
getMessages(roomId)
|
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("/register", 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("/: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);
|
||||||
|
});
|
||||||
|
|
||||||
|
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";
|
import cors from "cors";
|
||||||
const app = express();
|
const app = express();
|
||||||
import { execQueryAsync, execQuery } from "./db/db";
|
import { execQueryAsync, execQuery } from "./db/db";
|
||||||
import mailRouter from "./routes/mail";
|
|
||||||
import emailManager from "./mails/EmailManager";
|
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(express.json());
|
||||||
app.use(
|
app.use(
|
||||||
@ -14,8 +16,11 @@ app.use(
|
|||||||
app.use(cors());
|
app.use(cors());
|
||||||
app.listen(process.env.PORT || 5500);
|
app.listen(process.env.PORT || 5500);
|
||||||
|
|
||||||
app.use("/api/mail", mailRouter);
|
app.use("/api/account", accountRouter);
|
||||||
|
app.use("/api/room", roomRouter);
|
||||||
|
app.use("/api/message", messageRouter);
|
||||||
|
|
||||||
|
// create imap and smtp instances for each account
|
||||||
emailManager.init();
|
emailManager.init();
|
||||||
|
|
||||||
// debug reset all tables
|
// debug reset all tables
|
||||||
|
@ -2,28 +2,27 @@ import API from "./API";
|
|||||||
|
|
||||||
export default {
|
export default {
|
||||||
registerAccount(data: object) {
|
registerAccount(data: object) {
|
||||||
return API().post("/mail/account", data);
|
return API().post("/account/register", data);
|
||||||
},
|
},
|
||||||
getAccounts() {
|
getAccounts() {
|
||||||
return API().get("/mail/accounts");
|
return API().get("/account/getAll");
|
||||||
},
|
},
|
||||||
getRooms(mailboxId: number) {
|
getRooms(mailboxId: number) {
|
||||||
return API().get(`/mail/${mailboxId}/rooms`);
|
return API().get(`/account/${mailboxId}/rooms`);
|
||||||
},
|
},
|
||||||
getMessages(roomId: number) {
|
getMessages(roomId: number) {
|
||||||
return API().get(`/mail/${roomId}/messages`);
|
return API().get(`/room/${roomId}/messages`);
|
||||||
},
|
},
|
||||||
getMembers(roomId: number) {
|
getMembers(roomId: number) {
|
||||||
return API().get(`/mail/${roomId}/members`);
|
return API().get(`/room/${roomId}/members`);
|
||||||
},
|
},
|
||||||
addFlag(data: { mailboxId: number; messageId: number; flag: string }) {
|
addFlag(data: { mailboxId: number; messageId: number; flag: string }) {
|
||||||
return API().post(`/mail/addFlag`, data);
|
return API().post(`/message/addFlag`, data);
|
||||||
},
|
},
|
||||||
removeFlag(data: { mailboxId: number; messageId: number; flag: string }) {
|
removeFlag(data: { mailboxId: number; messageId: number; flag: string }) {
|
||||||
return API().post(`/mail/removeFlag`, data);
|
return API().post(`/message/removeFlag`, data);
|
||||||
},
|
},
|
||||||
reponseEmail(data: { user: string; roomId: number; text: string; html: string }) {
|
reponseEmail(data: { user: string; roomId: number; text: string; html: string }) {
|
||||||
console.log(data);
|
return API().post(`/room/response`, data);
|
||||||
return API().post(`/mail/response`, data);
|
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
Loading…
Reference in New Issue
Block a user