mirror of
https://github.com/ckaczor/azuredatastudio.git
synced 2026-01-26 17:23:15 -05:00
extend the ListDatabasesRequest to allow more information to be returned (#10186)
* database detail * revert sts change * reuse databaseInfo interface
This commit is contained in:
3
src/sql/azdata.d.ts
vendored
3
src/sql/azdata.d.ts
vendored
@@ -599,6 +599,7 @@ declare module 'azdata' {
|
||||
// List Databases Request ----------------------------------------------------------------------
|
||||
export interface ListDatabasesResult {
|
||||
databaseNames: Array<string>;
|
||||
databases?: Array<DatabaseInfo>;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -725,7 +726,7 @@ declare module 'azdata' {
|
||||
export interface MetadataProvider extends DataProvider {
|
||||
getMetadata(connectionUri: string): Thenable<ProviderMetadata>;
|
||||
|
||||
getDatabases(connectionUri: string): Thenable<string[]>;
|
||||
getDatabases(connectionUri: string): Thenable<string[] | DatabaseInfo[]>;
|
||||
|
||||
getTableInfo(connectionUri: string, metadata: ObjectMetadata): Thenable<ColumnMetadata[]>;
|
||||
|
||||
|
||||
@@ -16,7 +16,7 @@ export interface IMetadataService {
|
||||
|
||||
getMetadata(connectionUri: string): Thenable<azdata.ProviderMetadata | undefined>;
|
||||
|
||||
getDatabaseNames(connectionUri: string): Thenable<string[]>;
|
||||
getDatabases(connectionUri: string): Thenable<string[] | azdata.DatabaseInfo[]>;
|
||||
|
||||
getTableInfo(connectionUri: string, metadata: azdata.ObjectMetadata): Thenable<azdata.ColumnMetadata[] | undefined>;
|
||||
|
||||
@@ -49,7 +49,7 @@ export class MetadataService implements IMetadataService {
|
||||
return Promise.resolve(undefined);
|
||||
}
|
||||
|
||||
public getDatabaseNames(connectionUri: string): Thenable<string[]> {
|
||||
public getDatabases(connectionUri: string): Thenable<string[] | azdata.DatabaseInfo[]> {
|
||||
let providerId: string = this._connectionService.getProviderIdFromUri(connectionUri);
|
||||
if (providerId) {
|
||||
let provider = this._providers[providerId];
|
||||
|
||||
@@ -210,7 +210,7 @@ export class MainThreadDataProtocol extends Disposable implements MainThreadData
|
||||
getMetadata(connectionUri: string): Thenable<azdata.ProviderMetadata> {
|
||||
return self._proxy.$getMetadata(handle, connectionUri);
|
||||
},
|
||||
getDatabases(connectionUri: string): Thenable<string[]> {
|
||||
getDatabases(connectionUri: string): Thenable<string[] | azdata.DatabaseInfo[]> {
|
||||
return self._proxy.$getDatabases(handle, connectionUri);
|
||||
},
|
||||
getTableInfo(connectionUri: string, metadata: azdata.ObjectMetadata): Thenable<azdata.ColumnMetadata[]> {
|
||||
|
||||
@@ -411,7 +411,7 @@ export class ExtHostDataProtocol extends ExtHostDataProtocolShape {
|
||||
return this._resolveProvider<azdata.MetadataProvider>(handle).getMetadata(connectionUri);
|
||||
}
|
||||
|
||||
public $getDatabases(handle: number, connectionUri: string): Thenable<string[]> {
|
||||
public $getDatabases(handle: number, connectionUri: string): Thenable<string[] | azdata.DatabaseInfo[]> {
|
||||
return this._resolveProvider<azdata.MetadataProvider>(handle).getDatabases(connectionUri);
|
||||
}
|
||||
|
||||
|
||||
@@ -113,7 +113,7 @@ export abstract class ExtHostDataProtocolShape {
|
||||
*/
|
||||
$getMetadata(handle: number, connectionUri: string): Thenable<azdata.ProviderMetadata> { throw ni(); }
|
||||
|
||||
$getDatabases(handle: number, connectionUri: string): Thenable<string[]> { throw ni(); }
|
||||
$getDatabases(handle: number, connectionUri: string): Thenable<string[] | azdata.DatabaseInfo[]> { throw ni(); }
|
||||
|
||||
$getTableInfo(handle: number, connectionUri: string, metadata: azdata.ObjectMetadata): Thenable<azdata.ColumnMetadata[]> { throw ni(); }
|
||||
|
||||
|
||||
@@ -27,6 +27,7 @@ import { ScrollbarVisibility } from 'vs/base/common/scrollable';
|
||||
import { subscriptionToDisposable } from 'sql/base/browser/lifecycle';
|
||||
import { ObjectMetadataWrapper } from 'sql/workbench/contrib/dashboard/browser/widgets/explorer/objectMetadataWrapper';
|
||||
import { status, alert } from 'vs/base/browser/ui/aria/aria';
|
||||
import { isStringArray } from 'vs/base/common/types';
|
||||
|
||||
@Component({
|
||||
selector: 'explorer-widget',
|
||||
@@ -131,10 +132,13 @@ export class ExplorerWidget extends DashboardWidget implements IDashboardWidget,
|
||||
)));
|
||||
} else {
|
||||
const currentProfile = this._bootstrap.connectionManagementService.connectionInfo.connectionProfile;
|
||||
this._register(subscriptionToDisposable(this._bootstrap.metadataService.databaseNames.subscribe(
|
||||
this._register(subscriptionToDisposable(this._bootstrap.metadataService.databases.subscribe(
|
||||
data => {
|
||||
// Handle the case where there is no metadata service
|
||||
data = data || [];
|
||||
if (!isStringArray(data)) {
|
||||
data = data.map(item => item.options['name'] as string);
|
||||
}
|
||||
const profileData = data.map(d => {
|
||||
const profile = new ConnectionProfile(this.capabilitiesService, currentProfile);
|
||||
profile.databaseName = d;
|
||||
|
||||
@@ -36,8 +36,8 @@ export class SingleConnectionMetadataService {
|
||||
return Observable.fromPromise(this._metadataService.getMetadata(this._uri));
|
||||
}
|
||||
|
||||
get databaseNames(): Observable<string[]> {
|
||||
return Observable.fromPromise(this._metadataService.getDatabaseNames(this._uri));
|
||||
get databases(): Observable<string[] | DatabaseInfo[]> {
|
||||
return Observable.fromPromise(this._metadataService.getDatabases(this._uri));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user