add button to set seen flag on front
This commit is contained in:
15
back/abl/Messages-abl.ts
Normal file
15
back/abl/Messages-abl.ts
Normal file
@@ -0,0 +1,15 @@
|
||||
import statusCode from "../utils/statusCodes";
|
||||
import { Response } from "express";
|
||||
|
||||
export default class Message {
|
||||
|
||||
static async addFlag(body, res: Response) {
|
||||
console.log("hit")
|
||||
res.status(statusCode.OK).send();
|
||||
}
|
||||
|
||||
static async removeFlag(body, res: Response) {
|
||||
console.log("hit")
|
||||
res.status(statusCode.OK).send();
|
||||
}
|
||||
}
|
||||
@@ -5,10 +5,12 @@ import { Response } from "express";
|
||||
|
||||
export async function messages(body, res: Response) {
|
||||
const { roomId } = body;
|
||||
getMessages(roomId).then((messages) => {
|
||||
res.status(statusCode.OK).json(messages);
|
||||
}).catch((err) => {
|
||||
logger.err(err)
|
||||
res.status(statusCode.INTERNAL_SERVER_ERROR);
|
||||
});
|
||||
}
|
||||
getMessages(roomId)
|
||||
.then((messages) => {
|
||||
res.status(statusCode.OK).json(messages);
|
||||
})
|
||||
.catch((err) => {
|
||||
logger.err(err);
|
||||
res.status(statusCode.INTERNAL_SERVER_ERROR);
|
||||
});
|
||||
}
|
||||
|
||||
@@ -3,6 +3,7 @@ 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 {
|
||||
@@ -11,6 +12,8 @@ import {
|
||||
validateGetMembers,
|
||||
validateGetMessages,
|
||||
validateGetRooms,
|
||||
validateAddFlag,
|
||||
validateRemoveFlag,
|
||||
} from "../validator/validator";
|
||||
import Account from "../abl/Account-abl";
|
||||
|
||||
@@ -75,4 +78,22 @@ router.post("/account", async (req, 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;
|
||||
|
||||
20
back/validator/schemas/setFlag-schema.json
Normal file
20
back/validator/schemas/setFlag-schema.json
Normal file
@@ -0,0 +1,20 @@
|
||||
{
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"mailboxId": {
|
||||
"type": "number"
|
||||
},
|
||||
"messageId": {
|
||||
"type": "number"
|
||||
},
|
||||
"flag": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"mailboxId",
|
||||
"messageId",
|
||||
"flag"
|
||||
],
|
||||
"additionalProperties": false
|
||||
}
|
||||
@@ -8,9 +8,12 @@ import getAccountSchema from "./schemas/getAccounts-schema.json";
|
||||
import getRoomSchema from "./schemas/getRooms-schema.json";
|
||||
import getMessagesSchema from "./schemas/getMessages-schema.json";
|
||||
import getMembersSchema from "./schemas/getMembers-schema.json";
|
||||
import setFlagSchema from "./schemas/setFlag-schema.json";
|
||||
|
||||
export const validateCreateAccount = ajv.compile(createAccountSchema);
|
||||
export const validateGetAccounts = ajv.compile(getAccountSchema);
|
||||
export const validateGetRooms = ajv.compile(getRoomSchema);
|
||||
export const validateGetMessages = ajv.compile(getMessagesSchema);
|
||||
export const validateGetMembers = ajv.compile(getMembersSchema);
|
||||
export const validateAddFlag = ajv.compile(setFlagSchema);
|
||||
export const validateRemoveFlag = ajv.compile(setFlagSchema);
|
||||
Reference in New Issue
Block a user