From 708f3999169d4cde6fe2f449db6749b67d3d6c74 Mon Sep 17 00:00:00 2001 From: advplyr Date: Sun, 21 Nov 2021 06:54:10 -0600 Subject: [PATCH] Add: Login/connection error messages --- Server.js | 69 ++++++++++++++++++++++++++++++++-------- android/app/build.gradle | 4 +-- layouts/default.vue | 13 +------- package.json | 2 +- pages/connect.vue | 26 ++++++++------- store/index.js | 22 +++++++++++-- 6 files changed, 94 insertions(+), 42 deletions(-) diff --git a/Server.js b/Server.js index dfae3a51..760db0c5 100644 --- a/Server.js +++ b/Server.js @@ -64,23 +64,28 @@ class Server extends EventEmitter { async connect(url, token) { if (this.connected) { console.warn('[SOCKET] Connection already established for ' + this.url) - return true + return { success: true } } if (!url) { console.error('Invalid url to connect') - return false + return { + error: 'Invalid URL' + } } var serverUrl = this.getServerUrl(url) var res = await this.ping(serverUrl) if (!res || !res.success) { - //this.setServerUrl(null) - return false + return { + error: res ? res.error : 'Unknown Error' + } } var authRes = await this.authorize(serverUrl, token) - if (!authRes || !authRes.user) { - return false + if (!authRes || authRes.error) { + return { + error: authRes ? authRes.error : 'Authorization Error' + } } this.setServerUrl(serverUrl) @@ -88,19 +93,26 @@ class Server extends EventEmitter { this.setUser(authRes.user) this.connectSocket() - return true + return { success: true } } async check(url) { var serverUrl = this.getServerUrl(url) if (!serverUrl) { - return false + return { + error: 'Invalid server url' + } } var res = await this.ping(serverUrl) - if (!res || !res.success) { - return false + if (!res || res.error) { + return { + error: res ? res.error : 'Ping Failed' + } + } + return { + success: true, + serverUrl } - return serverUrl } async login(url, username, password) { @@ -122,8 +134,16 @@ class Server extends EventEmitter { } }).catch(error => { console.error('[Server] Server auth failed', error) + var errorMsg = null + if (error.response) { + errorMsg = error.response.data || 'Unknown Error' + } else if (error.request) { + errorMsg = 'Server did not respond' + } else { + errorMsg = 'Failed to send request' + } return { - error: 'Request Failed' + error: errorMsg } }) } @@ -142,7 +162,17 @@ class Server extends EventEmitter { return res.data }).catch(error => { console.error('[Server] Server auth failed', error) - return false + var errorMsg = null + if (error.response) { + errorMsg = error.response.data || 'Unknown Error' + } else if (error.request) { + errorMsg = 'Server did not respond' + } else { + errorMsg = 'Failed to send request' + } + return { + error: errorMsg + } }) } @@ -153,7 +183,18 @@ class Server extends EventEmitter { return res.data }).catch(error => { console.error('Server check failed', error) - return false + var errorMsg = null + if (error.response) { + errorMsg = error.response.data || 'Unknown Error' + } else if (error.request) { + errorMsg = 'Server did not respond' + } else { + errorMsg = 'Failed to send request' + } + return { + success: false, + error: errorMsg + } }) } diff --git a/android/app/build.gradle b/android/app/build.gradle index 9d36768b..9a5a928e 100644 --- a/android/app/build.gradle +++ b/android/app/build.gradle @@ -13,8 +13,8 @@ android { applicationId "com.audiobookshelf.app" minSdkVersion rootProject.ext.minSdkVersion targetSdkVersion rootProject.ext.targetSdkVersion - versionCode 44 - versionName "0.9.25-beta" + versionCode 45 + versionName "0.9.26-beta" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" aaptOptions { // Files and dirs to omit from the packaged assets dir, modified to accommodate modern web apps. diff --git a/layouts/default.vue b/layouts/default.vue index e3dce915..cabe838d 100644 --- a/layouts/default.vue +++ b/layouts/default.vue @@ -5,7 +5,6 @@ - @@ -14,7 +13,6 @@