mirror of
https://github.com/sudoxnym/habitica-self-host.git
synced 2026-04-14 19:47:03 +00:00
load user info per conversation.id (#11368)
* load user info per conversation.id * fix projection
This commit is contained in:
parent
d29a7ef651
commit
f3372716d9
1 changed files with 24 additions and 2 deletions
|
|
@ -1,6 +1,7 @@
|
|||
import {mapInboxMessage, inboxModel as Inbox} from '../../models/message';
|
||||
import {getUserInfo, sendTxn as sendTxnEmail} from '../email';
|
||||
import {sendNotification as sendPushNotification} from '../pushNotifications';
|
||||
import { model as User } from '../../models/user';
|
||||
|
||||
const PM_PER_PAGE = 10;
|
||||
|
||||
|
|
@ -89,8 +90,6 @@ export async function listConversations (owner) {
|
|||
username: {$last: '$username' },
|
||||
timestamp: {$last: '$timestamp'},
|
||||
text: {$last: '$text'},
|
||||
userStyles: {$last: '$userStyles'},
|
||||
contributor: {$last: '$contributor'},
|
||||
count: {$sum: 1},
|
||||
},
|
||||
},
|
||||
|
|
@ -99,9 +98,32 @@ export async function listConversations (owner) {
|
|||
|
||||
const conversationsList = await query.exec();
|
||||
|
||||
const usersQuery = {
|
||||
_id: {$in: conversationsList.map(c => c._id) },
|
||||
};
|
||||
|
||||
const usersAr = await User.find(usersQuery, {
|
||||
_id: 1,
|
||||
contributor: 1,
|
||||
items: 1,
|
||||
preferences: 1,
|
||||
stats: 1,
|
||||
}).exec();
|
||||
const usersMap = {};
|
||||
|
||||
for (const usr of usersAr) {
|
||||
usersMap[usr._id] = usr;
|
||||
}
|
||||
|
||||
const conversations = conversationsList.map((res) => ({
|
||||
uuid: res._id,
|
||||
...res,
|
||||
userStyles: {
|
||||
items: usersMap[res._id].items,
|
||||
preferences: usersMap[res._id].preferences,
|
||||
stats: usersMap[res._id].stats,
|
||||
},
|
||||
contributor: usersMap[res._id].contributor,
|
||||
}));
|
||||
|
||||
return conversations;
|
||||
|
|
|
|||
Loading…
Reference in a new issue