Browse Source

Fixing some issues around deleting datasources/queries and managing the full URL for migrating queries.

master
mike12345567 5 years ago
parent
commit
1948c867cc
  1. 10
      packages/builder/src/components/backend/DatasourceNavigator/popovers/EditDatasourcePopover.svelte
  2. 8
      packages/builder/src/components/backend/DatasourceNavigator/popovers/EditQueryPopover.svelte
  3. 7
      packages/builder/src/pages/builder/app/[application]/data/datasource/[selectedDatasource]/rest/[query]/index.svelte
  4. 5
      packages/server/src/integrations/rest.ts

10
packages/builder/src/components/backend/DatasourceNavigator/popovers/EditDatasourcePopover.svelte

@ -1,6 +1,6 @@
<script>
import { goto } from "@roxi/routify"
import { datasources, tables } from "stores/backend"
import { datasources, queries, tables } from "stores/backend"
import { notifications } from "@budibase/bbui"
import { ActionMenu, MenuItem, Icon } from "@budibase/bbui"
import ConfirmDialog from "components/common/ConfirmDialog.svelte"
@ -12,7 +12,13 @@
let updateDatasourceDialog
async function deleteDatasource() {
const wasSelectedSource = $datasources.selected
let wasSelectedSource = $datasources.selected
if (!wasSelectedSource && $queries.selected) {
const queryId = $queries.selected
wasSelectedSource = $datasources.list.find(ds =>
queryId.includes(ds._id)
)?._id
}
const wasSelectedTable = $tables.selected
await datasources.delete(datasource)
notifications.success("Datasource deleted")

8
packages/builder/src/components/backend/DatasourceNavigator/popovers/EditQueryPopover.svelte

@ -1,14 +1,20 @@
<script>
import { goto } from "@roxi/routify"
import { ActionMenu, MenuItem, Icon, notifications } from "@budibase/bbui"
import ConfirmDialog from "components/common/ConfirmDialog.svelte"
import { queries } from "stores/backend"
import { datasources, queries } from "stores/backend"
export let query
let confirmDeleteDialog
async function deleteQuery() {
const wasSelectedQuery = $queries.selected
const selectedDatasource = $datasources.selected
await queries.delete(query)
if (wasSelectedQuery === query._id) {
$goto(`./datasource/${selectedDatasource}`)
}
notifications.success("Query deleted")
}

7
packages/builder/src/pages/builder/app/[application]/data/datasource/[selectedDatasource]/rest/[query]/index.svelte

@ -52,7 +52,6 @@
let response, schema, enabledHeaders
let datasourceType, integrationInfo, queryConfig, responseSuccess
$: datasource = $datasources.list.find(ds => ds._id === query?.datasourceId)
$: datasourceType = datasource?.source
$: integrationInfo = $integrations[datasourceType]
$: queryConfig = integrationInfo?.query
@ -135,8 +134,14 @@
onMount(() => {
query = getSelectedQuery()
datasource = $datasources.list.find(ds => ds._id === query?.datasourceId)
const datasourceUrl = datasource?.config.url
const qs = query?.fields.queryString
breakQs = breakQueryString(qs)
if (datasourceUrl && !query.fields.path?.startsWith(datasourceUrl)) {
const path = query.fields.path
query.fields.path = `${datasource.config.url}/${path ? path : ""}`
}
url = buildUrl(query.fields.path, breakQs)
schema = schemaToFields(query.schema)
bindings = queryParametersToKeyValue(query.parameters)

5
packages/server/src/integrations/rest.ts

@ -153,7 +153,10 @@ module RestModule {
getUrl(path: string, queryString: string): string {
const main = `${path}?${queryString}`
let complete = !this.config.url ? main : `${this.config.url}/${main}`
let complete = main
if (this.config.url && !main.startsWith(this.config.url)) {
complete = !this.config.url ? main : `${this.config.url}/${main}`
}
if (!complete.startsWith("http")) {
complete = `http://${complete}`
}

Loading…
Cancel
Save