import statusCodes from "../utils/statusCodes"; import express from "express"; const router = express.Router(); import { rooms } from "../abl/rooms"; import Message from "../abl/Messages-abl"; import { messages } from "../abl/messages"; import { members } from "../abl/members"; import { validateCreateAccount, validateGetAccounts, validateGetMembers, validateGetMessages, validateGetRooms, validateAddFlag, validateRemoveFlag, } from "../validator/validator"; import Account from "../abl/Account-abl"; /** * Return all mailboxes and folders for an user */ router.get("/accounts", async (req, res) => { const valid = validateGetAccounts(req.params); if (!valid) { res.status(statusCodes.NOT_ACCEPTABLE).send({ error: validateGetAccounts.errors }); } else { await Account.getAll(req.params, res); } }); /** * Return all rooms from a mailbox */ router.get("/:mailboxId/rooms", async (req, res) => { // todo offet limit const valid = validateGetRooms(req.params); if (!valid) { res.status(statusCodes.NOT_ACCEPTABLE).send({ error: validateGetRooms.errors }); } else { await rooms(req.params, res); } }); /** * Return all messages from a room */ router.get("/:roomId/messages", async (req, res) => { const valid = validateGetMessages(req.params); if (!valid) { res.status(statusCodes.NOT_ACCEPTABLE).send({ error: validateGetMessages.errors }); } else { await messages(req.params, res); } }); /** * Return all members from a room */ router.get("/:roomId/members", async (req, res) => { const valid = validateGetMembers(req.params); if (!valid) { res.status(statusCodes.NOT_ACCEPTABLE).send({ error: validateGetMembers.errors }); } else { await members(req.params, res); } }); /** * Register a new mailbox inside the app */ router.post("/account", async (req, res) => { const valid = validateCreateAccount(req.body); if (!valid) { res.status(statusCodes.NOT_ACCEPTABLE).send({ error: validateCreateAccount.errors }); } else { await Account.register(req.body, res); } }); router.post("/addFlag", async (req, res) => { const valid = validateAddFlag(req.body); if (!valid) { res.status(statusCodes.NOT_ACCEPTABLE).send({ error: validateAddFlag.errors }); } else { await Message.addFlag(req.body, res); } }); router.post("/removeFlag", async (req, res) => { const valid = validateRemoveFlag(req.body); if (!valid) { res.status(statusCodes.NOT_ACCEPTABLE).send({ error: validateRemoveFlag.errors }); } else { await Message.removeFlag(req.body, res); } }); export default router;