Skip to content

Commit 4bf983d

Browse files
committed
fix: syncing from polaris actually works now
1 parent ebbcda2 commit 4bf983d

File tree

1 file changed

+39
-48
lines changed

1 file changed

+39
-48
lines changed

api/index.ts

Lines changed: 39 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -472,55 +472,46 @@ async function syncFromPolaris(guild: string) {
472472
return [new Error("No users found"), false];
473473
}
474474

475-
console.log(users.length)
476-
477-
const insertQuery = `
478-
INSERT INTO users
479-
(id, guild_id, xp, pfp, name, nickname, level, xp_needed_next_level, progress_next_level)
480-
VALUES
481-
`;
482-
483-
const insertValues: string[] = [];
484-
485-
// eslint-disable-next-line @typescript-eslint/no-unused-vars
486-
for(const _user of users) {
487-
insertValues.push(`(?, ?, ?, ?, ?, ?, ?, ?, ?)`);
475+
try {
476+
for(const user of users) {
477+
const xpValue = user.xp;
478+
const level = Math.floor(Math.sqrt(xpValue / 100));
479+
const nextLevel = level + 1;
480+
const nextLevelXp = Math.pow(nextLevel, 2) * 100;
481+
const xpNeededForNextLevel = nextLevelXp - xpValue;
482+
const currentLevelXp = Math.pow(level, 2) * 100;
483+
const progressToNextLevel =
484+
((xpValue - currentLevelXp) / (nextLevelXp - currentLevelXp)) * 100;
485+
486+
await new Promise((resolve, reject) => {
487+
pool.query(
488+
`INSERT INTO users (id, guild_id, xp, pfp, name, nickname, level, xp_needed_next_level, progress_next_level) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)`,
489+
[
490+
user.id,
491+
guild,
492+
xpValue,
493+
user.avatar,
494+
user.username,
495+
user.nickname ?? user.displayName,
496+
level,
497+
xpNeededForNextLevel,
498+
progressToNextLevel.toFixed(2),
499+
],
500+
(err) => {
501+
if (err) {
502+
console.error("Error syncing from Polaris:", err);
503+
reject(err);
504+
} else {
505+
resolve(null);
506+
}
507+
},
508+
);
509+
});
510+
}
511+
return [null, true]
512+
} catch (err) {
513+
return [err, false];
488514
}
489515

490-
console.log(insertValues.length)
491-
492-
const formattedUsers = users.map((user: { id: string, xp: number, avatar: string, username: string, nickname: string, displayName: string }) => {
493-
const xpValue = user.xp;
494-
const level = Math.floor(Math.sqrt(xpValue / 100));
495-
const nextLevel = level + 1;
496-
const nextLevelXp = Math.pow(nextLevel, 2) * 100;
497-
const xpNeededForNextLevel = nextLevelXp - xpValue;
498-
const currentLevelXp = Math.pow(level, 2) * 100;
499-
const progressToNextLevel =
500-
((xpValue - currentLevelXp) / (nextLevelXp - currentLevelXp)) * 100;
501-
return [
502-
user.id,
503-
guild,
504-
xpValue,
505-
user.avatar,
506-
user.username,
507-
user.nickname ?? user.displayName,
508-
level,
509-
xpNeededForNextLevel,
510-
progressToNextLevel.toFixed(2),
511-
];
512-
})
513-
514-
return new Promise((resolve, reject) => {
515-
pool.query(insertQuery + "\n" + insertValues.join(","), formattedUsers, (err) =>
516-
{
517-
if (err) {
518-
console.error("Error syncing from Polaris:", err);
519-
reject([err, false]);
520-
} else {
521-
resolve([null, true]);
522-
}
523-
});
524-
});
525516
}
526517
//#endregion

0 commit comments

Comments
 (0)