feat: get friends event

This commit is contained in:
Zamitto
2024-07-21 16:35:02 -03:00
parent 909e288bec
commit d350aa950d
5 changed files with 44 additions and 9 deletions

View File

@@ -0,0 +1,26 @@
import { registerEvent } from "../register-event";
import { HydraApi } from "@main/services";
import { UserFriends } from "@types";
export const getUserFriends = async (
userId: string,
take: number,
skip: number
): Promise<UserFriends> => {
return HydraApi.get(`/user/${userId}/friends`, { take, skip }).catch(
(_err) => {
return { totalFriends: 0, friends: [] } as UserFriends;
}
);
};
const getUserFriendsEvent = async (
_event: Electron.IpcMainInvokeEvent,
userId: string,
take: number,
skip: number
) => {
return getUserFriends(userId, take, skip);
};
registerEvent("getUserFriends", getUserFriendsEvent);

View File

@@ -4,13 +4,17 @@ import { steamGamesWorker } from "@main/workers";
import { UserProfile } from "@types";
import { convertSteamGameToCatalogueEntry } from "../helpers/search-games";
import { getSteamAppAsset } from "@main/helpers";
import { getUserFriends } from "./get-user-friends";
const getUser = async (
_event: Electron.IpcMainInvokeEvent,
userId: string
): Promise<UserProfile | null> => {
try {
const profile = await HydraApi.get(`/user/${userId}`);
const [profile, friends] = await Promise.all([
HydraApi.get(`/user/${userId}`),
getUserFriends(userId, 12, 0),
]);
const recentGames = await Promise.all(
profile.recentGames.map(async (game) => {
@@ -46,7 +50,7 @@ const getUser = async (
})
);
return { ...profile, libraryGames, recentGames };
return { ...profile, libraryGames, recentGames, friends };
} catch (err) {
return null;
}

View File

@@ -72,7 +72,7 @@ export class HydraApi {
this.instance.interceptors.request.use(
(request) => {
logger.log(" ---- REQUEST -----");
logger.log(request.method, request.url, request.data);
logger.log(request.method, request.url, request.params, request.data);
return request;
},
(error) => {
@@ -196,12 +196,12 @@ export class HydraApi {
throw err;
};
static async get(url: string) {
static async get(url: string, params?: any) {
if (!this.isLoggedIn()) throw new UserNotLoggedInError();
await this.revalidateAccessTokenIfExpired();
return this.instance
.get(url, this.getAxiosConfig())
.get(url, { params, ...this.getAxiosConfig() })
.then((response) => response.data)
.catch(this.handleUnauthorizedError);
}