From 4606e8cbabef55abb90936de655d146515d76049 Mon Sep 17 00:00:00 2001 From: Chrystian Huot Date: Thu, 3 Sep 2020 09:03:56 -0400 Subject: [PATCH] Fix NaN values when importing from upstream --- server/lib/rdio-scanner/api/call-upload.js | 14 +++++++------ server/lib/rdio-scanner/controller.js | 23 ++++++++++++++-------- 2 files changed, 23 insertions(+), 14 deletions(-) diff --git a/server/lib/rdio-scanner/api/call-upload.js b/server/lib/rdio-scanner/api/call-upload.js index 834a84c..eb50f3f 100644 --- a/server/lib/rdio-scanner/api/call-upload.js +++ b/server/lib/rdio-scanner/api/call-upload.js @@ -73,9 +73,9 @@ class CallUpload { frequencies = []; } - const frequency = parseInt(reqBody.frequency, 10); + const frequency = parseInt(reqBody.frequency, 10) || null; - const source = parseInt(reqBody.source, 10); + const source = parseInt(reqBody.source, 10) || null; let sources; @@ -86,16 +86,18 @@ class CallUpload { sources = []; } - const system = parseInt(reqBody.system, 10); + const system = parseInt(reqBody.system, 10) || null; - const talkgroup = parseInt(reqBody.talkgroup, 10); + const talkgroup = parseInt(reqBody.talkgroup, 10) || null; if (!this.controller.validateApiKey(apiKey, system, talkgroup)) { const message = `system=${system} talkgroup=${talkgroup} file=${audioName} No matching system/talkgroup`; console.warn(`Api: ${message}`); - return res.send(`${message}\n`); + res.send(`${message}\n`); + + return; } try { @@ -115,7 +117,7 @@ class CallUpload { res.send(`Call imported successfully.\n`); } catch (error) { - res.send(error.message); + res.status(500).send(error.message); } } }); diff --git a/server/lib/rdio-scanner/controller.js b/server/lib/rdio-scanner/controller.js index 7c023e6..551b34c 100644 --- a/server/lib/rdio-scanner/controller.js +++ b/server/lib/rdio-scanner/controller.js @@ -262,9 +262,9 @@ class Controller extends EventEmitter { const keypadBeeps = options.keypadBeeps === false ? false : options.keypadBeeps === 1 ? defaults.keypadBeeps.uniden - : options.keypadBeeps === 2 ? defaults.keypadBeeps.whistler - : options.keypadBeeps !== null && typeof options.keypadBeeps === 'object' ? options.keypadBeeps - : defaults.keypadBeeps.uniden; + : options.keypadBeeps === 2 ? defaults.keypadBeeps.whistler + : options.keypadBeeps !== null && typeof options.keypadBeeps === 'object' ? options.keypadBeeps + : defaults.keypadBeeps.uniden; const useGroup = this.config.options.useGroup; @@ -404,9 +404,16 @@ class Controller extends EventEmitter { } } - const newCall = await this.models.call.create(call); + let newCall; - console.log(`NewCall: system=${call.system} talkgroup=${call.talkgroup} file=${call.audioName} Success`); + try { + newCall = await this.models.call.create(call); + + console.log(`NewCall: system=${call.system} talkgroup=${call.talkgroup} file=${call.audioName} Success`); + + } catch (error) { + console.log(`NewCall: system=${call.system} talkgroup=${call.talkgroup} file=${call.audioName} ${error.message}`); + } this.emit('call', newCall); } @@ -617,9 +624,9 @@ function parseConfig(config) { config.options.keypadBeeps = config.options.keypadBeeps === false ? false : config.options.keyBeep === false ? false - : config.options.keypadBeeps !== null && typeof config.options.keypadBeeps === 'object' ? config.options.keypadBeeps - : [1, 2].includes(config.options.keypadBeeps) ? config.options.keypadBeeps - : 1; + : config.options.keypadBeeps !== null && typeof config.options.keypadBeeps === 'object' ? config.options.keypadBeeps + : [1, 2].includes(config.options.keypadBeeps) ? config.options.keypadBeeps + : 1; if (config.options.keyBeep !== undefined) { delete config.options.keyBeep;