1
0
Fork 0
mirror of synced 2024-06-01 18:20:18 +12:00
budibase/qa-core/src/internal-api/api/apis/DatasourcesAPI.ts

63 lines
1.8 KiB
TypeScript
Raw Normal View History

2023-04-07 01:22:21 +12:00
import { Response } from "node-fetch"
import {
Datasource,
CreateDatasourceResponse,
2023-04-15 05:14:47 +12:00
UpdateDatasourceResponse,
} from "@budibase/types"
2023-04-07 01:22:21 +12:00
import BudibaseInternalAPIClient from "../BudibaseInternalAPIClient"
2023-05-11 03:53:20 +12:00
import BaseAPI from "./BaseAPI"
import { DatasourceRequest } from "../../../types"
2023-04-07 01:22:21 +12:00
2023-05-11 03:53:20 +12:00
export default class DatasourcesAPI extends BaseAPI {
2023-04-07 01:22:21 +12:00
constructor(client: BudibaseInternalAPIClient) {
2023-05-11 03:53:20 +12:00
super(client)
2023-04-07 01:22:21 +12:00
}
async getIntegrations(): Promise<[Response, any]> {
2023-05-11 03:53:20 +12:00
const [response, json] = await this.get(`/integrations`)
2023-04-07 01:22:21 +12:00
const integrationsCount = Object.keys(json).length
expect(integrationsCount).toBe(16)
return [response, json]
}
async getAll(): Promise<[Response, Datasource[]]> {
2023-05-11 03:53:20 +12:00
const [response, json] = await this.get(`/datasources`)
2023-04-07 01:22:21 +12:00
expect(json.length).toBeGreaterThan(0)
return [response, json]
}
async getTable(dataSourceId: string): Promise<[Response, Datasource]> {
2023-05-11 03:53:20 +12:00
const [response, json] = await this.get(`/datasources/${dataSourceId}`)
2023-04-07 01:22:21 +12:00
expect(json._id).toEqual(dataSourceId)
return [response, json]
}
async add(
body: DatasourceRequest
): Promise<[Response, CreateDatasourceResponse]> {
2023-05-11 03:53:20 +12:00
const [response, json] = await this.post(`/datasources`, body)
2023-04-07 01:22:21 +12:00
expect(json.datasource._id).toBeDefined()
expect(json.datasource._rev).toBeDefined()
return [response, json]
}
async update(
body: Datasource
): Promise<[Response, UpdateDatasourceResponse]> {
2023-05-11 03:53:20 +12:00
const [response, json] = await this.put(`/datasources/${body._id}`, body)
2023-04-07 01:22:21 +12:00
expect(json.datasource._id).toBeDefined()
expect(json.datasource._rev).toBeDefined()
return [response, json]
}
async delete(dataSourceId: string, revId: string): Promise<Response> {
2023-05-11 03:53:20 +12:00
const [response, json] = await this.del(
2023-04-07 01:22:21 +12:00
`/datasources/${dataSourceId}/${revId}`
)
2023-05-11 03:53:20 +12:00
2023-04-07 01:22:21 +12:00
return response
}
}