From f54d855f55262f73655e8f903a4935ccba723e06 Mon Sep 17 00:00:00 2001 From: azivner Date: Tue, 19 Dec 2017 22:33:44 -0500 Subject: [PATCH] sql console now shows error message if any SQL error ocurred --- public/javascripts/dialogs/sql_console.js | 15 +++++++++++---- routes/api/sql.js | 13 ++++++++++++- services/sql.js | 2 ++ 3 files changed, 25 insertions(+), 5 deletions(-) diff --git a/public/javascripts/dialogs/sql_console.js b/public/javascripts/dialogs/sql_console.js index 0f4792bde..171b57d57 100644 --- a/public/javascripts/dialogs/sql_console.js +++ b/public/javascripts/dialogs/sql_console.js @@ -20,15 +20,22 @@ const sqlConsole = (function() { async function execute() { const sqlQuery = queryEl.val(); - const results = await server.post("sql/execute", { + const result = await server.post("sql/execute", { query: sqlQuery }); + if (!result.success) { + showError(result.error); + return; + } + + const rows = result.rows; + resultHeadEl.empty(); resultBodyEl.empty(); - if (results.length > 0) { - const result = results[0]; + if (rows.length > 0) { + const result = rows[0]; const rowEl = $(""); for (const key in result) { @@ -38,7 +45,7 @@ const sqlConsole = (function() { resultHeadEl.append(rowEl); } - for (const result of results) { + for (const result of rows) { const rowEl = $(""); for (const key in result) { diff --git a/routes/api/sql.js b/routes/api/sql.js index b4c735fd7..9aab0a140 100644 --- a/routes/api/sql.js +++ b/routes/api/sql.js @@ -8,7 +8,18 @@ const sql = require('../../services/sql'); router.post('/execute', auth.checkApiAuth, async (req, res, next) => { const query = req.body.query; - res.send(await sql.getResults(query)); + try { + res.send({ + success: true, + rows: await sql.getResults(query) + }); + } + catch (e) { + res.send({ + success: false, + error: e.message + }); + } }); module.exports = router; \ No newline at end of file diff --git a/services/sql.js b/services/sql.js index f24c17726..03686a0dd 100644 --- a/services/sql.js +++ b/services/sql.js @@ -192,6 +192,8 @@ async function wrap(func) { catch (e) { log.error("Error executing query. Inner exception: " + e.stack + thisError.stack); + thisError.message = e.stack; + throw thisError; } }