Skip to content

Commit f1f0187

Browse files
authored
refactor: optimize user data retrieval in AdminGodMode.vue (#1291)
- Fetch users in chunks with Promise.all for improved performance - Divide user IDs into smaller batches of 100 for API requests
1 parent 211e178 commit f1f0187

File tree

1 file changed

+14
-3
lines changed

1 file changed

+14
-3
lines changed

src/pages/admin/AdminGodMode.vue

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -97,9 +97,20 @@ onMounted(async () => {
9797
const userIds = userLocations.value.map(
9898
(location: UserLocation) => location.user_id,
9999
);
100-
await User.api().get(`/users?id__in=${userIds.join(',')}`, {
101-
dataKey: 'results',
102-
});
100+
// get users in chunks using promise all
101+
const chunkSize = 100;
102+
const promises = [];
103+
for (let i = 0; i < userIds.length; i += chunkSize) {
104+
promises.push(
105+
User.api().get(
106+
`/users?id__in=${userIds.slice(i, i + chunkSize).join(',')}`,
107+
{
108+
dataKey: 'results',
109+
},
110+
),
111+
);
112+
}
113+
await Promise.all(promises);
103114
104115
map.value = L.map('godModeMap', {
105116
zoomControl: true,

0 commit comments

Comments
 (0)