link imap sync to server and show email on front
This commit is contained in:
@@ -6,56 +6,42 @@ const Ajv = require("ajv");
|
||||
const addFormats = require("ajv-formats");
|
||||
const ajv = new Ajv({ allErrors: true });
|
||||
addFormats(ajv);
|
||||
const schema_mailbox = require("../schemas/mailbox_schema.json");
|
||||
const { addMailbox } = require("../controllers/addMailbox.js");
|
||||
const { getMailboxes } = require("../db/api.js");
|
||||
const schema_account = require("../schemas/account_schema.json");
|
||||
const { addAccount } = require("../controllers/addAccount.js");
|
||||
const { getAccounts } = require("../db/api.js");
|
||||
const { rooms } = require("../controllers/rooms.js");
|
||||
const { messages } = require("../controllers/messages.js");
|
||||
|
||||
const validate_mailbox = ajv.compile(schema_mailbox);
|
||||
const validate_account = ajv.compile(schema_account);
|
||||
|
||||
/**
|
||||
* Return all mailboxes and folders for an user
|
||||
*/
|
||||
router.get("/mailboxes", (req, res) => {
|
||||
getMailboxes().then((data) => {
|
||||
data[0].id = 1; // todo debug
|
||||
res.status(statusCodes.OK).json(data)
|
||||
router.get("/accounts", (req, res) => {
|
||||
getAccounts().then((data) => {
|
||||
res.status(statusCodes.OK).json(data);
|
||||
});
|
||||
});
|
||||
|
||||
/**
|
||||
* @param {number} mailboxId the id of the mailbox (account_id) from which to fetch the messages, 0 if from all
|
||||
* @param {number} offset the offset of the query
|
||||
* @param {number} limit the number of message to return
|
||||
* @param {string} token the token of the user
|
||||
* @return {object} a list of room and their preview (subject)
|
||||
*/
|
||||
router.get("/:mailboxId/rooms", async (req, res) => {
|
||||
const { mailboxId, offset, limit } = req.params;
|
||||
// todo check token
|
||||
// todo use offset
|
||||
// todo use offset limit
|
||||
await rooms(req.params, res);
|
||||
|
||||
});
|
||||
|
||||
router.get("/:roomId/messages", async (req, res) => {
|
||||
const { roomId } = req.params;
|
||||
console.log("called")
|
||||
// todo check token
|
||||
await messages(req.params, res);
|
||||
});
|
||||
|
||||
/**
|
||||
* Register a new mailbox inside the app
|
||||
*/
|
||||
router.post("/mailbox", async (req, res) => {
|
||||
console.log(req.body)
|
||||
const valid = validate_mailbox(req.body);
|
||||
router.post("/account", async (req, res) => {
|
||||
const valid = validate_account(req.body);
|
||||
if (!valid) {
|
||||
res.status(statusCodes.NOT_ACCEPTABLE).send({ error: validate_mailbox.errors });
|
||||
res.status(statusCodes.NOT_ACCEPTABLE).send({ error: validate_account.errors });
|
||||
} else {
|
||||
await addMailbox(req.body, res);
|
||||
await addAccount(req.body, res);
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
Reference in New Issue
Block a user