chore: fill in guild member data asynchronously (#1715)
Some checks failed
Build Docker image / docker (push) Has been cancelled
Build / build (push) Has been cancelled

Reviewed-on: #1715
Co-authored-by: Sainan <63328889+Sainan@users.noreply.github.com>
Co-committed-by: Sainan <63328889+Sainan@users.noreply.github.com>
This commit is contained in:
Sainan 2025-04-18 11:17:36 -07:00 committed by Sainan
parent de5fd5fce0
commit bc5dc02fc9

View File

@ -59,6 +59,7 @@ export const getGuildClient = async (guild: TGuildDatabaseDocument, accountId: s
const members: IGuildMemberClient[] = []; const members: IGuildMemberClient[] = [];
let missingEntry = true; let missingEntry = true;
const dataFillInPromises: Promise<void>[] = [];
for (const guildMember of guildMembers) { for (const guildMember of guildMembers) {
const member: IGuildMemberClient = { const member: IGuildMemberClient = {
_id: toOid(guildMember.accountId), _id: toOid(guildMember.accountId),
@ -70,8 +71,12 @@ export const getGuildClient = async (guild: TGuildDatabaseDocument, accountId: s
if (guildMember.accountId.equals(accountId)) { if (guildMember.accountId.equals(accountId)) {
missingEntry = false; missingEntry = false;
} else { } else {
dataFillInPromises.push(
(async (): Promise<void> => {
member.DisplayName = (await Account.findById(guildMember.accountId, "DisplayName"))!.DisplayName; member.DisplayName = (await Account.findById(guildMember.accountId, "DisplayName"))!.DisplayName;
await fillInInventoryDataForGuildMember(member); })()
);
dataFillInPromises.push(fillInInventoryDataForGuildMember(member));
} }
members.push(member); members.push(member);
} }
@ -90,6 +95,8 @@ export const getGuildClient = async (guild: TGuildDatabaseDocument, accountId: s
}); });
} }
await Promise.all(dataFillInPromises);
return { return {
_id: toOid(guild._id), _id: toOid(guild._id),
Name: guild.Name, Name: guild.Name,