import { Datasource, VerifyDatasourceRequest, CreateDatasourceResponse, UpdateDatasourceResponse, UpdateDatasourceRequest, QueryJson, BuildSchemaFromSourceResponse, } from "@budibase/types" import { Expectations, TestAPI } from "./base" export class DatasourceAPI extends TestAPI { create = async ( config: Datasource, expectations?: Expectations ): Promise => { const response = await this._post( `/api/datasources`, { body: { datasource: config, tablesFilter: [], }, expectations, } ) return response.datasource } update = async ( datasource: UpdateDatasourceRequest, expectations?: Expectations ): Promise => { const response = await this._put( `/api/datasources/${datasource._id}`, { body: datasource, expectations } ) return response.datasource } verify = async ( data: VerifyDatasourceRequest, expectations?: Expectations ) => { return await this._post(`/api/datasources/verify`, { body: data, expectations, }) } delete = async (datasource: Datasource, expectations?: Expectations) => { return await this._delete( `/api/datasources/${datasource._id!}/${datasource._rev!}`, { expectations } ) } get = async (id: string, expectations?: Expectations) => { return await this._get(`/api/datasources/${id}`, { expectations, }) } query = async ( query: Omit & Partial>, expectations?: Expectations ) => { return await this._post(`/api/datasources/query`, { body: query, expectations, }) } fetchSchema = async (id: string, expectations?: Expectations) => { return await this._post( `/api/datasources/${id}/schema`, { expectations, } ) } }