refactored modals, added unread messages when user is not on page,
This commit is contained in:
@@ -643,7 +643,7 @@ async function insertContact(initiatorId, receiverId, contactUsername, read) {
|
||||
conversation_id: contact.conversation_id,
|
||||
type: "direct",
|
||||
read: contact.read,
|
||||
last_message_id: latestMessage.message_id,
|
||||
last_message_id: latestMessage.last_message_id,
|
||||
last_message: latestMessage.last_message,
|
||||
last_message_time: latestMessage.last_message_time,
|
||||
last_message_sender: latestMessage.last_message_sender,
|
||||
@@ -657,7 +657,7 @@ async function insertContact(initiatorId, receiverId, contactUsername, read) {
|
||||
async function getLatestMessage(conversation_id) {
|
||||
const query = `
|
||||
SELECT DISTINCT ON (m.conversation_id)
|
||||
m.message_id,
|
||||
m.message_id AS last_message_id,
|
||||
m.content AS last_message,
|
||||
m.sent_at AS last_message_time,
|
||||
a.username AS last_message_sender
|
||||
@@ -672,7 +672,7 @@ async function getLatestMessage(conversation_id) {
|
||||
const result = await client.query(query, [conversation_id]);
|
||||
|
||||
return {
|
||||
message_id: result.rows[0]?.message_id || null,
|
||||
last_message_id: result.rows[0]?.last_message_id || null,
|
||||
last_message: result.rows[0]?.last_message || null,
|
||||
last_message_time: result.rows[0]?.last_message_time || null,
|
||||
last_message_sender: result.rows[0]?.last_message_sender || null,
|
||||
@@ -872,7 +872,7 @@ async function updateContactStatus(user_id, conversation_id, read) {
|
||||
`;
|
||||
try {
|
||||
await client.query(query, [read, user_id, conversation_id]);
|
||||
await updateContactLastActive(user_id, conversation_id);
|
||||
// await updateContactLastActive(user_id, conversation_id);
|
||||
console.log(
|
||||
`Successfully updated contact status, user_id: ${user_id}, conversation_id: ${conversation_id}, read: ${read}: `,
|
||||
);
|
||||
@@ -1261,4 +1261,5 @@ module.exports = {
|
||||
isAdmin,
|
||||
addAdministrator,
|
||||
removeAdministrator,
|
||||
getLatestMessage,
|
||||
};
|
||||
|
||||
@@ -44,6 +44,7 @@ const {
|
||||
insertContactByUsername,
|
||||
isConversationMember,
|
||||
isAdmin,
|
||||
getLatestMessage,
|
||||
} = require("./db/db");
|
||||
const { extname } = require("node:path");
|
||||
|
||||
@@ -376,7 +377,10 @@ app.post("/api/chat/groups/create", authorizeUser, async (req, res) => {
|
||||
}
|
||||
console.log("Successfully created group: ", groupname, "id: ", group_id);
|
||||
console.log(`io.to: ${contact_user_id} added to group`);
|
||||
io.to(contact_user_id).emit("added to group", { group_id });
|
||||
io.to(contact_user_id).emit("added to group", {
|
||||
group_id,
|
||||
username: groupname,
|
||||
});
|
||||
return res.status(200).json({
|
||||
message: `Successfully created group: ${groupname}`,
|
||||
group_id: group_id,
|
||||
@@ -400,12 +404,22 @@ app.post("/api/chat/groups/addMember", authorizeUser, async (req, res) => {
|
||||
}
|
||||
|
||||
const result = await addMemberToGroupByUsername(group_id, username);
|
||||
const lastMessage = await getLatestMessage(group_id);
|
||||
console.error("ADDED TO GROUP: ", {
|
||||
username,
|
||||
user_id: result,
|
||||
group_id,
|
||||
...lastMessage,
|
||||
});
|
||||
if (result !== null) {
|
||||
io.to(result).to(group_id).emit("added to group", {
|
||||
username,
|
||||
user_id: result,
|
||||
group_id,
|
||||
});
|
||||
io.to(result)
|
||||
.to(group_id)
|
||||
.emit("added to group", {
|
||||
username,
|
||||
user_id: result,
|
||||
group_id,
|
||||
...lastMessage,
|
||||
});
|
||||
console.log("added to group: ", result);
|
||||
return res.status(200).json({ message: "Successfully added member" });
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user