get members

This commit is contained in:
grimhilt 2023-03-29 16:48:28 +02:00
parent d39d66195a
commit 34c6a43fdc
4 changed files with 55 additions and 2 deletions

View File

@ -0,0 +1,17 @@
const statusCode = require("../utils/statusCodes").statusCodes;
const { getMembers } = require("../db/api.js");
const { logger } = require("../system/Logger");
async function members(body, res) {
const { roomId } = body;
getMembers(roomId).then((addresses) => {
res.status(statusCode.OK).json(addresses);
}).catch((err) => {
logger.error(err)
res.status(statusCode.INTERNAL_SERVER_ERROR);
});
}
module.exports = {
members,
};

View File

@ -97,9 +97,24 @@ async function getMessages(roomId) {
return await execQueryAsync(query, values);
}
async function getMembers(roomId) {
const query = `
SELECT
address.address_id,
address.address_name,
address.email
FROM app_room_member
INNER JOIN address ON address.address_id = app_room_member.member_id
WHERE app_room_member.room_id = ?
`;
const values = [roomId];
return await execQueryAsync(query, values);
}
module.exports = {
registerAccount,
getAccounts,
getRooms,
getMessages
getMessages,
getMembers
};

View File

@ -33,6 +33,11 @@ router.get("/:roomId/messages", async (req, res) => {
await messages(req.params, res);
});
router.get("/:roomId/members", async (req, res) => {
const { roomId } = req.params;
await members(req.params, res);
});
/**
* Register a new mailbox inside the app
*/

View File

@ -6,7 +6,7 @@ import Account from "./models/Account";
const store = createStore({
state() {
return {
rooms: [new Room({id:12, user: "user", roomName: "room name", mailbboxId:2})],
rooms: [new Room({ id: 12, user: "user", roomName: "room name", mailbboxId: 2 })],
messages: [],
accounts: [new Account(0, "ALL")],
activeAccount: 0,
@ -44,6 +44,12 @@ const store = createStore({
});
room.messagesFetched = true;
},
addAddress(state, payload) {
// todo add if not exist
payload.addresses.forEach((address) => {
state.addresses.push(address);
});
},
},
getters: {
rooms: (state) => () => {
@ -83,6 +89,7 @@ const store = createStore({
},
fetchMessages: async (context, data) => {
if (!data.room || data.room?.fetched == false) {
store.dispatch("fetchAddress", { roomId: data.roomId });
API.getMessages(data.roomId)
.then((res) => {
context.commit("addMessages", { messages: res.data, roomId: data.roomId });
@ -92,6 +99,15 @@ const store = createStore({
});
}
},
fetchRoomMembers: async (context, data) => {
API.getMembers(data.roomId)
.then((res) => {
context.commit("addAddress", { addresses: res.data, roomId: data.roomId });
})
.catch((err) => {
console.log(err);
});
},
},
});