From 498137ba7c8a1a40d6382f2f81abc0ddeac43af5 Mon Sep 17 00:00:00 2001 From: Adria Navarro Date: Fri, 5 Jan 2024 16:39:55 +0100 Subject: [PATCH] Split back --- packages/server/src/api/controllers/datasource.ts | 15 ++++++++++++--- packages/server/src/sdk/app/datasources/plus.ts | 5 +---- 2 files changed, 13 insertions(+), 7 deletions(-) diff --git a/packages/server/src/api/controllers/datasource.ts b/packages/server/src/api/controllers/datasource.ts index 364490e5f5..8c177f1704 100644 --- a/packages/server/src/api/controllers/datasource.ts +++ b/packages/server/src/api/controllers/datasource.ts @@ -33,7 +33,10 @@ export async function verify( ctx: UserCtx ) { const { datasource } = ctx.request.body - const connector = await sdk.datasources.getConnector(datasource) + const enrichedDatasource = await sdk.datasources.getAndMergeDatasource( + datasource + ) + const connector = await sdk.datasources.getConnector(enrichedDatasource) if (!connector.testConnection) { ctx.throw(400, "Connection information verification not supported") } @@ -49,8 +52,11 @@ export async function information( ctx: UserCtx ) { const { datasource } = ctx.request.body - const connector = (await sdk.datasources.getConnector( + const enrichedDatasource = await sdk.datasources.getAndMergeDatasource( datasource + ) + const connector = (await sdk.datasources.getConnector( + enrichedDatasource )) as DatasourcePlus if (!connector.getTableNames) { ctx.throw(400, "Table name fetching not supported by datasource") @@ -328,7 +334,10 @@ export async function query(ctx: UserCtx) { export async function getExternalSchema(ctx: UserCtx) { const datasource = await sdk.datasources.get(ctx.params.datasourceId) - const connector = await sdk.datasources.getConnector(datasource) + const enrichedDatasource = await sdk.datasources.getAndMergeDatasource( + datasource + ) + const connector = await sdk.datasources.getConnector(enrichedDatasource) if (!connector.getExternalSchema) { ctx.throw(400, "Datasource does not support exporting external schema") diff --git a/packages/server/src/sdk/app/datasources/plus.ts b/packages/server/src/sdk/app/datasources/plus.ts index 0049730119..117d19a6a7 100644 --- a/packages/server/src/sdk/app/datasources/plus.ts +++ b/packages/server/src/sdk/app/datasources/plus.ts @@ -44,9 +44,6 @@ export async function getConnector( datasource: Datasource ): Promise { const Connector = await getIntegration(datasource.source) - - datasource = await mergeAndEnrich(datasource) - // can't enrich if it doesn't have an ID yet if (datasource._id) { datasource = await datasources.enrich(datasource) @@ -55,7 +52,7 @@ export async function getConnector( return new Connector(datasource.config) } -async function mergeAndEnrich(datasource: Datasource) { +export async function getAndMergeDatasource(datasource: Datasource) { if (datasource._id) { const existingDatasource = await datasources.get(datasource._id)