From 3d14ca302f654456f964850bfffc13b8d6cd53c0 Mon Sep 17 00:00:00 2001 From: "SPRINX0\\prochazka" Date: Fri, 7 Feb 2025 17:22:24 +0100 Subject: [PATCH] call complete on cursor --- .../api/src/controllers/databaseConnections.js | 18 ++++++++++++++++-- packages/api/src/utility/authProxy.js | 5 +++++ packages/web/src/tabs/QueryTab.svelte | 2 ++ 3 files changed, 23 insertions(+), 2 deletions(-) diff --git a/packages/api/src/controllers/databaseConnections.js b/packages/api/src/controllers/databaseConnections.js index 65b77ef43..2a1579efc 100644 --- a/packages/api/src/controllers/databaseConnections.js +++ b/packages/api/src/controllers/databaseConnections.js @@ -35,7 +35,7 @@ const crypto = require('crypto'); const loadModelTransform = require('../utility/loadModelTransform'); const exportDbModelSql = require('../utility/exportDbModelSql'); const axios = require('axios'); -const { callTextToSqlApi } = require('../utility/authProxy'); +const { callTextToSqlApi, callCompleteOnCursorApi } = require('../utility/authProxy'); const logger = getLogger('databaseConnections'); @@ -573,7 +573,21 @@ module.exports = { const res = await callTextToSqlApi(text, structure, dialect); - if (!res.sql) { + if (!res?.sql) { + return { errorMessage: 'No SQL generated' }; + } + + return res; + }, + + completeOnCursor_meta: true, + async completeOnCursor({ conid, database, text, dialect, line }) { + const existing = this.opened.find(x => x.conid == conid && x.database == database); + const { structure } = existing || {}; + if (!structure) return { errorMessage: 'No database structure' }; + const res = await callCompleteOnCursorApi(text, structure, dialect, line); + + if (!res?.sql) { return { errorMessage: 'No SQL generated' }; } diff --git a/packages/api/src/utility/authProxy.js b/packages/api/src/utility/authProxy.js index e0899b91e..f6122c916 100644 --- a/packages/api/src/utility/authProxy.js +++ b/packages/api/src/utility/authProxy.js @@ -28,6 +28,10 @@ async function callTextToSqlApi(text, structure, dialect) { return null; } +async function callCompleteOnCursorApi(cursorId, query, position, dialect) { + return null; +} + module.exports = { isAuthProxySupported, authProxyGetRedirectUrl, @@ -37,4 +41,5 @@ module.exports = { supportsAwsIam, getAwsIamToken, callTextToSqlApi, + callCompleteOnCursorApi, }; diff --git a/packages/web/src/tabs/QueryTab.svelte b/packages/web/src/tabs/QueryTab.svelte index c81d2e56f..5c5bf52a4 100644 --- a/packages/web/src/tabs/QueryTab.svelte +++ b/packages/web/src/tabs/QueryTab.svelte @@ -519,6 +519,8 @@ onClose={() => { isAiAssistantVisible = false; }} + text={$editorValue} + getLine={() => domEditor.getEditor().getSelectionRange().start.row} />