Ensure external tables always have a sourceId.

This commit is contained in:
Sam Rose 2024-10-16 12:20:41 +01:00
parent c150918773
commit 86c105e1c8
No known key found for this signature in database
2 changed files with 7 additions and 3 deletions

View File

@ -173,9 +173,9 @@ export class ExternalRequest<T extends Operation> {
if (!opts.datasource) { if (!opts.datasource) {
if (sdk.views.isView(source)) { if (sdk.views.isView(source)) {
const table = await sdk.views.getTable(source.id) const table = await sdk.views.getTable(source.id)
opts.datasource = await sdk.datasources.get(table.sourceId!) opts.datasource = await sdk.datasources.get(table.sourceId)
} else { } else {
opts.datasource = await sdk.datasources.get(source.sourceId!) opts.datasource = await sdk.datasources.get(source.sourceId)
} }
} }

View File

@ -90,7 +90,11 @@ export async function getExternalTable(
if (!entities[tableName]) { if (!entities[tableName]) {
throw new Error(`Unable to find table named "${tableName}"`) throw new Error(`Unable to find table named "${tableName}"`)
} }
return processTable(entities[tableName]) const table = await processTable(entities[tableName])
if (!table.sourceId) {
table.sourceId = datasourceId
}
return table
} }
export async function getTable(tableId: string): Promise<Table> { export async function getTable(tableId: string): Promise<Table> {