diff --git a/frontend/src/Editor/QueryManager/QueryEditors/TooljetDatabase/operations.js b/frontend/src/Editor/QueryManager/QueryEditors/TooljetDatabase/operations.js index 3e027e10dd..e59e2accf5 100644 --- a/frontend/src/Editor/QueryManager/QueryEditors/TooljetDatabase/operations.js +++ b/frontend/src/Editor/QueryManager/QueryEditors/TooljetDatabase/operations.js @@ -17,6 +17,16 @@ async function perform(queryOptions, organizationId, currentState) { return updateRows(queryOptions, organizationId, currentState); case 'delete_rows': return deleteRows(queryOptions, organizationId, currentState); + + default: + return { + statusText: 'Bad Request', + status: 400, + data: {}, + error: { + message: 'Invalid operation', + }, + }; } } diff --git a/frontend/src/_helpers/appUtils.js b/frontend/src/_helpers/appUtils.js index 9b6418edb7..9a628de9f6 100644 --- a/frontend/src/_helpers/appUtils.js +++ b/frontend/src/_helpers/appUtils.js @@ -807,6 +807,7 @@ export function previewQuery(_ref, query, editorState, calledFromQuery = false) } else { _ref.setState({ previewLoading: false, queryPreviewData: finalData }); } + const queryStatus = query.kind === 'tooljetdb' ? data.statusText @@ -814,8 +815,9 @@ export function previewQuery(_ref, query, editorState, calledFromQuery = false) ? data?.data?.status ?? 'ok' : data.status; switch (queryStatus) { + case 'Bad Request': case 'failed': { - const err = query.kind == 'tooljetdb' ? data : data.data || data; + const err = query.kind == 'tooljetdb' ? data.error : _.isEmpty(data.data) ? data : data.data; toast.error(`${err.message}`); break; } @@ -914,8 +916,14 @@ export function runQuery(_ref, queryId, queryName, confirmed = undefined, mode = fetchOAuthToken(url, dataQuery['data_source_id'] || dataQuery['dataSourceId']); } - const promiseStatus = query.kind === 'runpy' ? data?.data?.status : data.status; - if (promiseStatus === 'failed') { + const promiseStatus = + query.kind === 'tooljetdb' + ? data.statusText + : query.kind === 'runpy' + ? data?.data?.status ?? 'ok' + : data.status; + + if (promiseStatus === 'failed' || promiseStatus === 'Bad Request') { const errorData = query.kind === 'runpy' ? data.data : data; return _self.setState( { @@ -954,8 +962,8 @@ export function runQuery(_ref, queryId, queryName, confirmed = undefined, mode = definition: { events: dataQuery.options.events }, }); if (mode !== 'view') { - const errorMessage = data.message || data.data.message; - toast.error(errorMessage); + const err = query.kind == 'tooljetdb' ? data.error : _.isEmpty(data.data) ? data : data.data; + toast.error(err.message); } } );