add button to set seen flag on front

This commit is contained in:
grimhilt
2023-04-12 19:01:40 +02:00
parent 1ab74d67ca
commit 4e79ab12dc
13 changed files with 159 additions and 31 deletions

15
back/abl/Messages-abl.ts Normal file
View 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();
}
}

View File

@@ -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);
});
}

View File

@@ -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;

View File

@@ -0,0 +1,20 @@
{
"type": "object",
"properties": {
"mailboxId": {
"type": "number"
},
"messageId": {
"type": "number"
},
"flag": {
"type": "string"
}
},
"required": [
"mailboxId",
"messageId",
"flag"
],
"additionalProperties": false
}

View File

@@ -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);