feat: profile redesign

This commit is contained in:
Chubby Granny Chaser
2024-09-13 01:02:01 +01:00
parent 8f0003298f
commit d9a7672113
24 changed files with 268 additions and 97 deletions

View File

@@ -15,7 +15,8 @@ const getCatalogue = async (
});
const response = await HydraApi.get<{ objectId: string; shop: GameShop }[]>(
`/games/${category}?${params.toString()}`
`/games/${category}?${params.toString()}`,
{ needsAuth: false }
);
return Promise.all(

View File

@@ -1,15 +1,33 @@
import { registerEvent } from "../register-event";
import * as Sentry from "@sentry/electron/main";
import { HydraApi } from "@main/services";
import { HydraApi, logger } from "@main/services";
import { UserProfile } from "@types";
import { userAuthRepository } from "@main/repository";
import { UserNotLoggedInError } from "@shared";
import { steamUrlBuilder, UserNotLoggedInError } from "@shared";
import { steamGamesWorker } from "@main/workers";
const getSteamGame = async (objectId: string) => {
try {
const steamGame = await steamGamesWorker.run(Number(objectId), {
name: "getById",
});
return {
title: steamGame.name,
iconUrl: steamUrlBuilder.icon(objectId, steamGame.clientIcon),
};
} catch (err) {
logger.error("Failed to get Steam game", err);
return null;
}
};
const getMe = async (
_event: Electron.IpcMainInvokeEvent
): Promise<UserProfile | null> => {
return HydraApi.get(`/profile/me`)
.then((me) => {
.then(async (me) => {
userAuthRepository.upsert(
{
id: 1,
@@ -20,6 +38,17 @@ const getMe = async (
["id"]
);
if (me.currentGame) {
const steamGame = await getSteamGame(me.currentGame.objectId);
if (steamGame) {
me.currentGame = {
...me.currentGame,
...steamGame,
};
}
}
Sentry.setUser({ id: me.id, username: me.username });
return me;

View File

@@ -81,7 +81,6 @@ const getUser = async (
totalFriends: friends.totalFriends,
};
} catch (err) {
console.log("err", err);
return null;
}
};

View File

@@ -1,15 +1,14 @@
import { Game } from "@main/entity";
import { HydraApi } from "../hydra-api";
import { gameRepository } from "@main/repository";
import { logger } from "../logger";
export const createGame = async (game: Game) => {
console.log({ objectId: game.objectID, shop: game.shop });
HydraApi.post("/games/download", {
objectId: game.objectID,
shop: game.shop,
}).catch((err) => {
console.log(err);
logger.error("Failed to create game download", err);
});
HydraApi.post(`/profile/games`, {