From e8db014336f1d42546aa20c843127a5ccd5efd61 Mon Sep 17 00:00:00 2001 From: Kevin Yue Date: Sun, 25 Jun 2023 01:37:34 +0800 Subject: [PATCH] refactor: refine the error message --- gpgui/src/services/gatewayService.ts | 2 +- gpgui/src/services/portalService.ts | 16 +++++++++------- 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/gpgui/src/services/gatewayService.ts b/gpgui/src/services/gatewayService.ts index 12e611b..81bed65 100644 --- a/gpgui/src/services/gatewayService.ts +++ b/gpgui/src/services/gatewayService.ts @@ -45,7 +45,7 @@ class GatewayService { }); if (!response.ok) { - throw new Error("Login failed"); + throw new Error(`Gateway login failed: ${response.status}`); } return this.parseLoginResponse(response.data); diff --git a/gpgui/src/services/portalService.ts b/gpgui/src/services/portalService.ts index a471afa..9402b54 100644 --- a/gpgui/src/services/portalService.ts +++ b/gpgui/src/services/portalService.ts @@ -36,8 +36,9 @@ export type PortalCredential = { class PortalService { async prelogin(portal: string): Promise { const preloginUrl = `https://${portal}/global-protect/prelogin.esp`; + let response; try { - const response = await fetch(preloginUrl, { + response = await fetch(preloginUrl, { method: "POST", headers: { "User-Agent": "PAN GlobalProtect", @@ -57,14 +58,15 @@ class PortalService { // "host-id": "TODO, mac address?", }), }); - - if (!response.ok) { - throw new Error(`Failed to prelogin: ${response.status}`); - } - return this.parsePrelogin(response.data); } catch (err) { - throw new Error(`Failed to prelogin: Network error`); + console.error("Failed to prelogin: Network error", err); + throw new Error("Failed to prelogin: Network error"); } + + if (!response.ok) { + throw new Error(`Failed to prelogin: ${response.status}`); + } + return this.parsePrelogin(response.data); } private parsePrelogin(response: string): Prelogin {