From 90de43e6ffa1f78c0e6771aa4d3a65dd6f37c8bf Mon Sep 17 00:00:00 2001 From: Ryan Tharp Date: Tue, 4 Feb 2020 15:25:09 -0800 Subject: [PATCH] refactor out validServer() --- js/modules/loki_public_chat_api.js | 33 +++++++++++++++++++----------- 1 file changed, 21 insertions(+), 12 deletions(-) diff --git a/js/modules/loki_public_chat_api.js b/js/modules/loki_public_chat_api.js index d0398f6dd..8e4cd0f3d 100644 --- a/js/modules/loki_public_chat_api.js +++ b/js/modules/loki_public_chat_api.js @@ -17,6 +17,26 @@ class LokiPublicChatFactoryAPI extends EventEmitter { await Promise.all(this.servers.map(server => server.close())); } + static async validServer(serverUrl) { + // test to make sure it's online (and maybe has a valid SSL cert) + try { + // allow .loki (may only need an agent but not sure + // until we have a .loki to test with) + process.env.NODE_TLS_REJECT_UNAUTHORIZED = serverUrl.match(/\.loki\//) + ? 0 + : 1; + await nodeFetch(serverUrl); + process.env.NODE_TLS_REJECT_UNAUTHORIZED = 1; + // const txt = await res.text(); + } catch (e) { + process.env.NODE_TLS_REJECT_UNAUTHORIZED = 1; + log.warn(`failing to created ${serverUrl}`, e.code, e.message); + // bail out if not valid enough + return false; + } + return true; + } + // server getter/factory async findOrCreateServer(serverUrl) { let thisServer = this.servers.find( @@ -25,18 +45,7 @@ class LokiPublicChatFactoryAPI extends EventEmitter { if (!thisServer) { log.info(`LokiAppDotNetAPI creating ${serverUrl}`); - // test to make sure it's online (and maybe has a valid SSL cert) - try { - // allow .loki (may only need an agent but not sure - // until we have a .loki to test with) - process.env.NODE_TLS_REJECT_UNAUTHORIZED = serverUrl.match(/\.loki\//) ? 0 : 1; - await nodeFetch(serverUrl); - process.env.NODE_TLS_REJECT_UNAUTHORIZED = 1; - // const txt = await res.text(); - } catch(e) { - process.env.NODE_TLS_REJECT_UNAUTHORIZED = 1; - log.warn(`failing to created ${serverUrl}`, e.code, e.message); - // bail out if not valid enough + if (!await this.constructor.validServer(serverUrl)) { return null; }