58 lines
1.4 KiB
JavaScript
58 lines
1.4 KiB
JavaScript
export const buildDatasourceEndpoints = API => ({
|
|
/**
|
|
* Gets a list of datasources.
|
|
*/
|
|
getDatasources: async () => {
|
|
return await API.get({
|
|
url: "/api/datasources",
|
|
})
|
|
},
|
|
|
|
/**
|
|
* Prompts the server to build the schema for a datasource.
|
|
* @param datasourceId the datasource ID to build the schema for
|
|
*/
|
|
buildDatasourceSchema: async datasourceId => {
|
|
return await API.post({
|
|
url: `/api/datasources/${datasourceId}/schema`,
|
|
})
|
|
},
|
|
|
|
/**
|
|
* Creates a datasource
|
|
* @param datasource the datasource to create
|
|
* @param fetchSchema whether to fetch the schema or not
|
|
*/
|
|
createDatasource: async ({ datasource, fetchSchema }) => {
|
|
return await API.post({
|
|
url: "/api/datasources",
|
|
body: {
|
|
datasource,
|
|
fetchSchema,
|
|
},
|
|
})
|
|
},
|
|
|
|
/**
|
|
* Updates a datasource
|
|
* @param datasource the datasource to update
|
|
*/
|
|
updateDatasource: async datasource => {
|
|
return await API.put({
|
|
url: `/api/datasources/${datasource._id}`,
|
|
body: datasource,
|
|
})
|
|
},
|
|
|
|
/**
|
|
* Deletes a datasource.
|
|
* @param datasourceId the ID of the ddtasource to delete
|
|
* @param datasourceRev the rev of the datasource to delete
|
|
*/
|
|
deleteDatasource: async ({ datasourceId, datasourceRev }) => {
|
|
return await API.delete({
|
|
url: `/api/datasources/${datasourceId}/${datasourceRev}`,
|
|
})
|
|
},
|
|
})
|