61 lines
1.6 KiB
TypeScript
61 lines
1.6 KiB
TypeScript
import express from "express";
|
|
const router = express.Router();
|
|
|
|
import { rooms } from "../abl/rooms";
|
|
import Message from "../abl/Message-abl";
|
|
import { messages } from "../abl/messages";
|
|
import { members } from "../abl/members";
|
|
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, rooms);
|
|
});
|
|
|
|
/**
|
|
* Return all messages from a room
|
|
*/
|
|
router.get("/:roomId/messages", async (req, res) => {
|
|
await validator.validate("getMessages", req.params, res, messages);
|
|
});
|
|
|
|
/**
|
|
* Return all members from a room
|
|
*/
|
|
router.get("/:roomId/members", async (req, res) => {
|
|
await validator.validate("getMembers", req.params, res, members);
|
|
});
|
|
|
|
/**
|
|
* 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;
|