Test airtable connection
This commit is contained in:
parent
be6c398f53
commit
419e2de602
|
@ -1,12 +1,12 @@
|
|||
import {
|
||||
DatasourceFeature,
|
||||
ConnectionInfo,
|
||||
DatasourceFieldType,
|
||||
Integration,
|
||||
IntegrationBase,
|
||||
QueryType,
|
||||
} from "@budibase/types"
|
||||
|
||||
const Airtable = require("airtable")
|
||||
import Airtable from "airtable"
|
||||
|
||||
interface AirtableConfig {
|
||||
apiKey: string
|
||||
|
@ -83,13 +83,36 @@ const SCHEMA: Integration = {
|
|||
|
||||
class AirtableIntegration implements IntegrationBase {
|
||||
private config: AirtableConfig
|
||||
private client: any
|
||||
private client
|
||||
|
||||
constructor(config: AirtableConfig) {
|
||||
this.config = config
|
||||
this.client = new Airtable(config).base(config.base)
|
||||
}
|
||||
|
||||
async testConnection(): Promise<ConnectionInfo> {
|
||||
const mockTable = Date.now().toString()
|
||||
try {
|
||||
await this.client.makeRequest({
|
||||
path: `/${mockTable}`,
|
||||
})
|
||||
|
||||
return { connected: true }
|
||||
} catch (e: any) {
|
||||
if (
|
||||
e.message ===
|
||||
`Could not find table ${mockTable} in application ${this.config.base}`
|
||||
) {
|
||||
return { connected: true }
|
||||
}
|
||||
|
||||
return {
|
||||
connected: false,
|
||||
error: e.message as string,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
async create(query: { table: any; json: any }) {
|
||||
const { table, json } = query
|
||||
|
||||
|
|
Loading…
Reference in New Issue