Add types for datasources endpoints

This commit is contained in:
Pedro Silva 2023-04-13 11:13:21 +01:00
parent a8460169d1
commit 695f77fd1d
3 changed files with 35 additions and 5 deletions

View File

@ -12,7 +12,15 @@ import { getIntegration } from "../../integrations"
import { getDatasourceAndQuery } from "./row/utils"
import { invalidateDynamicVariables } from "../../threads/utils"
import { db as dbCore, context, events } from "@budibase/backend-core"
import { UserCtx, Datasource, Row } from "@budibase/types"
import {
UserCtx,
Datasource,
Row,
CreateDatasourceResponse,
UpdateDatasourceResponse,
UpdateDatasourceRequest,
CreateDatasourceRequest,
} from "@budibase/types"
import sdk from "../../sdk"
export async function fetch(ctx: UserCtx) {
@ -146,7 +154,7 @@ async function invalidateVariables(
await invalidateDynamicVariables(toInvalidate)
}
export async function update(ctx: UserCtx) {
export async function update(ctx: UserCtx<any, UpdateDatasourceResponse>) {
const db = context.getAppDB()
const datasourceId = ctx.params.datasourceId
let datasource = await sdk.datasources.get(datasourceId)
@ -187,15 +195,17 @@ export async function update(ctx: UserCtx) {
}
}
export async function save(ctx: UserCtx) {
export async function save(
ctx: UserCtx<CreateDatasourceRequest, CreateDatasourceResponse>
) {
const db = context.getAppDB()
const plus = ctx.request.body.datasource.plus
const fetchSchema = ctx.request.body.fetchSchema
const datasource = {
_id: generateDatasourceID({ plus }),
type: plus ? DocumentType.DATASOURCE_PLUS : DocumentType.DATASOURCE,
...ctx.request.body.datasource,
type: plus ? DocumentType.DATASOURCE_PLUS : DocumentType.DATASOURCE,
}
let schemaError = null
@ -218,7 +228,7 @@ export async function save(ctx: UserCtx) {
}
}
const response: any = {
const response: CreateDatasourceResponse = {
datasource: await sdk.datasources.removeSecretSingle(datasource),
}
if (schemaError) {

View File

@ -0,0 +1,19 @@
import { Datasource } from "../../../documents"
export interface CreateDatasourceResponse {
datasource: Datasource
error?: any
}
export interface UpdateDatasourceResponse {
datasource: Datasource
}
export interface CreateDatasourceRequest {
datasource: Datasource
fetchSchema?: boolean
}
export interface UpdateDatasourceRequest extends Datasource {
datasource: Datasource
}

View File

@ -1 +1,2 @@
export * from "./backup"
export * from "./datasource"