db connector: ds loading refactor

This commit is contained in:
Alexander Zobnin
2018-10-30 21:05:48 +03:00
parent 6eb52619b9
commit 34ba8bba1c
3 changed files with 42 additions and 30 deletions

View File

@@ -42,26 +42,33 @@ export class DBConnector {
this.datasourceTypeName = null;
}
loadDBDataSource() {
if (!this.datasourceName && this.datasourceId !== undefined) {
let ds = _.find(this.datasourceSrv.getAll(), {'id': this.datasourceId});
static loadDatasource(dsId, dsName, datasourceSrv) {
if (!dsName && dsId !== undefined) {
let ds = _.find(datasourceSrv.getAll(), {'id': dsId});
if (!ds) {
return Promise.reject(`SQL Data Source with ID ${this.datasourceId} not found`);
return Promise.reject(`Data Source with ID ${dsId} not found`);
}
this.datasourceName = ds.name;
dsName = ds.name;
}
if (this.datasourceName) {
return this.datasourceSrv.loadDatasource(this.datasourceName)
.then(ds => {
this.datasourceTypeId = ds.meta.id;
this.datasourceTypeName = ds.meta.name;
return ds;
});
if (dsName) {
return datasourceSrv.loadDatasource(dsName);
} else {
return Promise.reject(`SQL Data Source name should be specified`);
return Promise.reject(`Data Source name should be specified`);
}
}
loadDBDataSource() {
return DBConnector.loadDatasource(this.datasourceId, this.datasourceName, this.datasourceSrv)
.then(ds => {
this.datasourceTypeId = ds.meta.id;
this.datasourceTypeName = ds.meta.name;
if (!this.datasourceName) {
this.datasourceName = ds.name;
}
return ds;
});
}
/**
* Send test request to datasource in order to ensure it's working.
*/