v0.9.29 Bugs fixes
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "jama-backend",
|
||||
"version": "0.9.28",
|
||||
"version": "0.9.29",
|
||||
"description": "TeamChat backend server",
|
||||
"main": "src/index.js",
|
||||
"scripts": {
|
||||
|
||||
@@ -18,11 +18,17 @@ function postSysMsg(db, groupId, userId, content) {
|
||||
if (msg) { msg.reactions = []; io.to(`group:${groupId}`).emit('message:new', msg); }
|
||||
}
|
||||
|
||||
function addUserToDmGroup(db, dmGroupId, userId, actorId) {
|
||||
// Add user silently (no system message) — used during initial group creation
|
||||
function addUserToDmGroupSilent(db, dmGroupId, userId) {
|
||||
db.prepare("INSERT OR IGNORE INTO group_members (group_id, user_id, joined_at) VALUES (?, ?, datetime('now'))").run(dmGroupId, userId);
|
||||
io.in(`user:${userId}`).socketsJoin(`group:${dmGroupId}`);
|
||||
const dmGroup = db.prepare('SELECT * FROM groups WHERE id = ?').get(dmGroupId);
|
||||
io.to(`user:${userId}`).emit('group:new', { group: dmGroup });
|
||||
}
|
||||
|
||||
// Add user with system message — used when adding to existing group
|
||||
function addUserToDmGroup(db, dmGroupId, userId, actorId) {
|
||||
addUserToDmGroupSilent(db, dmGroupId, userId);
|
||||
const u = db.prepare('SELECT name, display_name FROM users WHERE id = ?').get(userId);
|
||||
postSysMsg(db, dmGroupId, actorId, `${u?.display_name || u?.name || 'A user'} has joined the conversation.`);
|
||||
}
|
||||
@@ -90,11 +96,9 @@ router.post('/multigroup', authMiddleware, adminMiddleware, (req, res) => {
|
||||
for (const uid of uids) {
|
||||
if (!addedUsers.has(uid)) {
|
||||
addedUsers.add(uid);
|
||||
addUserToDmGroup(db, dmGroupId, uid, req.user.id);
|
||||
addUserToDmGroupSilent(db, dmGroupId, uid);
|
||||
}
|
||||
}
|
||||
const ug = db.prepare('SELECT name FROM user_groups WHERE id = ?').get(ugId);
|
||||
if (ug) postSysMsg(db, dmGroupId, req.user.id, `Group "${ug.name}" has been added to this conversation.`);
|
||||
}
|
||||
|
||||
const dm = db.prepare('SELECT * FROM multi_group_dms WHERE id = ?').get(mgId);
|
||||
@@ -199,7 +203,7 @@ router.post('/', authMiddleware, adminMiddleware, (req, res) => {
|
||||
const validIds = Array.isArray(memberIds) ? memberIds.map(Number).filter(Boolean) : [];
|
||||
for (const uid of validIds) {
|
||||
db.prepare("INSERT OR IGNORE INTO user_group_members (user_group_id, user_id) VALUES (?, ?)").run(ugId, uid);
|
||||
addUserToDmGroup(db, dmGroupId, uid, req.user.id);
|
||||
addUserToDmGroupSilent(db, dmGroupId, uid);
|
||||
}
|
||||
const group = db.prepare('SELECT * FROM user_groups WHERE id = ?').get(ugId);
|
||||
res.json({ group });
|
||||
|
||||
Reference in New Issue
Block a user