feat: batch games and code refactor

This commit is contained in:
Zamitto 2024-06-16 23:43:18 -03:00
parent da5cc11bff
commit 7fc376b47f
10 changed files with 161 additions and 106 deletions

View file

@ -0,0 +1,35 @@
import { gameRepository } from "@main/repository";
import { chunk } from "lodash-es";
import { IsNull } from "typeorm";
import { HydraApi } from "../hydra-api";
import { logger } from "../logger";
import { AxiosError } from "axios";
export const uploadBatchGames = async () => {
try {
const games = await gameRepository.find({
where: { remoteId: IsNull(), isDeleted: false },
});
const gamesChunks = chunk(games, 200);
for (const chunk of gamesChunks) {
await HydraApi.post(
"/games/batch",
chunk.map((game) => {
return {
objectId: game.objectID,
playTimeInMilliseconds: Math.round(game.playTimeInMilliseconds),
shop: game.shop,
lastTimePlayed: game.lastTimePlayed,
};
})
);
}
} catch (err) {
if (err instanceof AxiosError) {
logger.error("uploadBatchGames", err.response, err.message);
} else {
logger.error("uploadBatchGames", err);
}
}
};