diff --git a/packages/server/src/api/controllers/integration.ts b/packages/server/src/api/controllers/integration.ts index 4f90e1217c..f7a4f9ee28 100644 --- a/packages/server/src/api/controllers/integration.ts +++ b/packages/server/src/api/controllers/integration.ts @@ -1,37 +1,16 @@ import { getDefinition, getDefinitions } from "../../integrations" -import { BBContext } from "@budibase/types" +import { SourceName, UserCtx } from "@budibase/types" -async function fetchDefinitions(ctx: BBContext) { - try { - const definitions = await getDefinitions() - delete definitions.AIRTABLE - ctx.status = 200 - ctx.body = definitions +export async function fetch(ctx: UserCtx) { + const definitions = await getDefinitions() + delete definitions.AIRTABLE + ctx.body = definitions +} - return definitions - } catch (error) { - console.error("Error fetching definitions:", error) - ctx.status = 500 - ctx.body = { error: "Internal server error" } - - return {} - } -} - -export async function fetch(ctx: BBContext) { - await fetchDefinitions(ctx) -} - -export async function find(ctx: BBContext) { - const def = await getDefinition(ctx.params.type) - if (ctx.params.type in (await fetchDefinitions(ctx))) { - ctx.body = def - ctx.status = 200 - } else { - ctx.status = 400 - ctx.body = { - message: `Cannot find definition '${ctx.params.type}'`, - status: 400, - } +export async function find(ctx: UserCtx) { + const sourceType = ctx.params?.type + if (sourceType === SourceName.AIRTABLE) { + ctx.throw(400, `Invalid source type - ${sourceType} is not supported.`) } + ctx.body = await getDefinition(ctx.params.type) }