PR comments.

This commit is contained in:
mike12345567 2024-12-12 16:50:21 +00:00
parent f62ffb38e2
commit f857c36e09
3 changed files with 15 additions and 15 deletions

View File

@ -59,15 +59,11 @@ export function isExternalTable(table: Table) {
}
export function buildExternalTableId(datasourceId: string, tableName: string) {
// encode spaces
if (tableName.includes(" ")) {
tableName = encodeURIComponent(tableName)
}
return `${datasourceId}${DOUBLE_SEPARATOR}${tableName}`
return `${datasourceId}${DOUBLE_SEPARATOR}${encodeURIComponent(tableName)}`
}
export function checkTableId(tableId: string) {
if (isExternalTableID(tableId) && tableId.includes(" ")) {
export function encodeTableId(tableId: string) {
if (isExternalTableID(tableId)) {
return encodeURIComponent(tableId)
} else {
return tableId

View File

@ -65,21 +65,19 @@ export function getSourceId(ctx: Ctx): { tableId: string; viewId?: string } {
const { sourceId } = ctx.params
if (docIds.isViewId(sourceId)) {
return {
tableId: sql.utils.checkTableId(
utils.extractViewInfoFromID(sourceId).tableId
),
tableId: utils.extractViewInfoFromID(sourceId).tableId,
viewId: sourceId,
}
}
return { tableId: sql.utils.checkTableId(ctx.params.sourceId) }
return { tableId: sql.utils.encodeTableId(ctx.params.sourceId) }
}
// now check for old way of specifying table ID
if (ctx.params?.tableId) {
return { tableId: sql.utils.checkTableId(ctx.params.tableId) }
return { tableId: sql.utils.encodeTableId(ctx.params.tableId) }
}
// check body for a table ID
if (ctx.request.body?.tableId) {
return { tableId: sql.utils.checkTableId(ctx.request.body.tableId) }
return { tableId: sql.utils.encodeTableId(ctx.request.body.tableId) }
}
throw new Error("Unable to find table ID in request")
}

View File

@ -1,4 +1,10 @@
import { context, db as dbCore, docIds, utils } from "@budibase/backend-core"
import {
context,
db as dbCore,
docIds,
utils,
sql,
} from "@budibase/backend-core"
import {
DatabaseQueryOpts,
Datasource,
@ -328,7 +334,7 @@ export function extractViewInfoFromID(viewId: string) {
const regex = new RegExp(`^(?<tableId>.+)${SEPARATOR}([^${SEPARATOR}]+)$`)
const res = regex.exec(viewId)
return {
tableId: res!.groups!["tableId"],
tableId: sql.utils.encodeTableId(res!.groups!["tableId"]),
}
}