79 lines
2.1 KiB
TypeScript
79 lines
2.1 KiB
TypeScript
import statusCodes from "../utils/statusCodes";
|
|
import express from "express";
|
|
const router = express.Router();
|
|
|
|
import { rooms } from "../abl/rooms";
|
|
import { messages } from "../abl/messages";
|
|
import { members } from "../abl/members";
|
|
import {
|
|
validateCreateAccount,
|
|
validateGetAccounts,
|
|
validateGetMembers,
|
|
validateGetMessages,
|
|
validateGetRooms,
|
|
} 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);
|
|
}
|
|
});
|
|
|
|
export default router;
|