From 16c44600112fefb0cf47a9490cb92579de954c4a Mon Sep 17 00:00:00 2001 From: Zamitto <167933696+zamitto@users.noreply.github.com> Date: Sun, 16 Jun 2024 17:01:38 -0300 Subject: [PATCH] feat: refactor deeplnik handler --- src/main/events/index.ts | 2 -- src/main/index.ts | 5 ++--- src/main/services/hydra-api.ts | 5 ++++- src/preload/index.ts | 1 - src/renderer/src/declaration.d.ts | 1 - 5 files changed, 6 insertions(+), 8 deletions(-) diff --git a/src/main/events/index.ts b/src/main/events/index.ts index d7348618..096b14a1 100644 --- a/src/main/events/index.ts +++ b/src/main/events/index.ts @@ -1,6 +1,5 @@ import { defaultDownloadsPath } from "@main/constants"; import { app, ipcMain } from "electron"; -import { HydraApi } from "@main/services/hydra-api"; import "./catalogue/get-catalogue"; import "./catalogue/get-game-shop-details"; @@ -46,5 +45,4 @@ import "./profile/get-me"; ipcMain.handle("ping", () => "pong"); ipcMain.handle("getVersion", () => app.getVersion()); -ipcMain.handle("isUserLoggedIn", () => HydraApi.isLoggedIn()); ipcMain.handle("getDefaultDownloadsPath", () => defaultDownloadsPath); diff --git a/src/main/index.ts b/src/main/index.ts index 3e74ea49..53b68bba 100644 --- a/src/main/index.ts +++ b/src/main/index.ts @@ -72,7 +72,7 @@ app.on("browser-window-created", (_, window) => { optimizer.watchWindowShortcuts(window); }); -app.on("second-instance", async (_event, commandLine) => { +app.on("second-instance", (_event, commandLine) => { // Someone tried to run a second instance, we should focus our window. if (WindowManager.mainWindow) { if (WindowManager.mainWindow.isMinimized()) @@ -86,8 +86,7 @@ app.on("second-instance", async (_event, commandLine) => { const [, path] = commandLine.pop()?.split("://") ?? []; if (path) { if (path.startsWith("auth")) { - //hydralauncher://auth?payload=responsedaapiembase64 - await HydraApi.handleExternalAuth(path.split("=")[1]); + HydraApi.handleExternalAuth(path); } else { WindowManager.redirect(path); } diff --git a/src/main/services/hydra-api.ts b/src/main/services/hydra-api.ts index 39a6d633..83af3cae 100644 --- a/src/main/services/hydra-api.ts +++ b/src/main/services/hydra-api.ts @@ -1,6 +1,7 @@ import { userAuthRepository } from "@main/repository"; import axios, { AxiosError, AxiosInstance } from "axios"; import { WindowManager } from "./window-manager"; +import url from "url"; export class HydraApi { private static instance: AxiosInstance; @@ -18,7 +19,9 @@ export class HydraApi { } static async handleExternalAuth(auth: string) { - const decodedBase64 = atob(auth); + const { payload } = url.parse(auth, true).query; + + const decodedBase64 = atob(payload as string); const jsonData = JSON.parse(decodedBase64); const { accessToken, expiresIn, refreshToken } = jsonData; diff --git a/src/preload/index.ts b/src/preload/index.ts index dda0b0f4..609a5831 100644 --- a/src/preload/index.ts +++ b/src/preload/index.ts @@ -104,7 +104,6 @@ contextBridge.exposeInMainWorld("electron", { /* Misc */ ping: () => ipcRenderer.invoke("ping"), getVersion: () => ipcRenderer.invoke("getVersion"), - isUserLoggedIn: () => ipcRenderer.invoke("isUserLoggedIn"), getDefaultDownloadsPath: () => ipcRenderer.invoke("getDefaultDownloadsPath"), openExternal: (src: string) => ipcRenderer.invoke("openExternal", src), showOpenDialog: (options: Electron.OpenDialogOptions) => diff --git a/src/renderer/src/declaration.d.ts b/src/renderer/src/declaration.d.ts index 3ae7fbfc..4cbacfe2 100644 --- a/src/renderer/src/declaration.d.ts +++ b/src/renderer/src/declaration.d.ts @@ -97,7 +97,6 @@ declare global { /* Misc */ openExternal: (src: string) => Promise; getVersion: () => Promise; - isUserLoggedIn: () => Promise; ping: () => string; getDefaultDownloadsPath: () => Promise; showOpenDialog: (