From 405785a4acda888e0e956eeffe510156e3cc48a0 Mon Sep 17 00:00:00 2001 From: wenyutang Date: Tue, 13 Aug 2024 08:48:07 +0800 Subject: [PATCH] fix: update the code according to comments --- src/commands/addDataPlaneApis.ts | 4 +- .../registerStepByStep.ts | 4 +- src/extension.ts | 68 +++++++++---------- src/uiStrings.ts | 1 + 4 files changed, 39 insertions(+), 38 deletions(-) diff --git a/src/commands/addDataPlaneApis.ts b/src/commands/addDataPlaneApis.ts index 552bfdc..dac7739 100644 --- a/src/commands/addDataPlaneApis.ts +++ b/src/commands/addDataPlaneApis.ts @@ -18,7 +18,7 @@ export async function getDataPlaneApis(context: IActionContext): Promise item.domain === element.domain)) { array.push(element); + } else { + vscode.window.showInformationMessage(UiStrings.DatplaneAlreadyAdded); } } pushIfNotExist(ext.dataPlaneAccounts, { domain: domain, tenantId: tenantId, clientId: clientId }); diff --git a/src/commands/registerApiSubCommands/registerStepByStep.ts b/src/commands/registerApiSubCommands/registerStepByStep.ts index 109ab51..ac54aaf 100644 --- a/src/commands/registerApiSubCommands/registerStepByStep.ts +++ b/src/commands/registerApiSubCommands/registerStepByStep.ts @@ -6,7 +6,7 @@ import * as fse from 'fs-extra'; import * as vscode from 'vscode'; import { ApiCenterService } from "../../azure/ApiCenter/ApiCenterService"; import { ApiCenterApi, ApiCenterApiVersion, ApiCenterApiVersionDefinition, ApiCenterApiVersionDefinitionImport, ApiKind, ApiVersionLifecycleStage, SpecificationName } from "../../azure/ApiCenter/contracts"; -import { ApiCenterVersionDefinitionManagement } from "../../azure/ApiCenterDefines/ApiCenterDefinition"; +import { ApiCenterVersionDefinitionDataPlane } from "../../azure/ApiCenterDefines/ApiCenterDefinition"; import { ext } from "../../extensionVariables"; import { ApiCenterTreeItem } from "../../tree/ApiCenterTreeItem"; import { ApisTreeItem } from "../../tree/ApisTreeItem"; @@ -17,7 +17,7 @@ export async function registerStepByStep(context: IActionContext, node?: ApisTre const apiCenterNode = await ext.treeDataProvider.showTreeItemPicker(ApiCenterTreeItem.contextValue, context); node = apiCenterNode.apisTreeItem; } - if (node.apiCenter instanceof ApiCenterVersionDefinitionManagement) { + if (node.apiCenter instanceof ApiCenterVersionDefinitionDataPlane) { return; } diff --git a/src/extension.ts b/src/extension.ts index af52b1b..2fc917f 100644 --- a/src/extension.ts +++ b/src/extension.ts @@ -39,14 +39,13 @@ import { searchApi } from './commands/searchApi'; import { setApiRuleset } from './commands/setApiRuleset'; import { SignInToDataPlane } from "./commands/signInToDataPlane"; import { testInPostman } from './commands/testInPostman'; +import { ErrorProperties, TelemetryProperties } from './common/telemetryEvent'; import { doubleClickDebounceDelay, selectedNodeKey } from './constants'; import { ext } from './extensionVariables'; import { ApiVersionDefinitionTreeItem } from './tree/ApiVersionDefinitionTreeItem'; import { createAzureAccountTreeItem } from "./tree/AzureAccountTreeItem"; import { createAzureDataAccountTreeItem } from './tree/DataPlaneAccount'; import { OpenApiEditor } from './tree/Editors/openApi/OpenApiEditor'; -// Copilot Chat -import { ErrorProperties, TelemetryProperties } from './common/telemetryEvent'; export async function activate(context: vscode.ExtensionContext) { console.log('Congratulations, your extension "azure-api-center" is now active!'); @@ -60,39 +59,8 @@ export async function activate(context: vscode.ExtensionContext) { context.subscriptions.push(ext.outputChannel); registerAzureUtilsExtensionVariables(ext); - AzureSessionProviderHelper.activateAzureSessionProvider(context); - const sessionProvider = AzureSessionProviderHelper.getSessionProvider(); - - const azureAccountTreeItem = createAzureAccountTreeItem(sessionProvider); - context.subscriptions.push(azureAccountTreeItem); - ext.treeItem = azureAccountTreeItem; - // var a = ext.treeItem.subscription; - ext.dataPlaneAccounts = []; - const treeDataProvider = new AzExtTreeDataProvider(azureAccountTreeItem, "appService.loadMore"); - - ext.treeItem = azureAccountTreeItem; - - ext.treeDataProvider = treeDataProvider; - - const treeView = vscode.window.createTreeView("apiCenterTreeView", { treeDataProvider }); - context.subscriptions.push(treeView); - - AzureDataSessionProviderHelper.activateAzureSessionProvider(context); - const dataPlaneSessionProvider = AzureDataSessionProviderHelper.getSessionProvider(); - const dataPlanAccountManagerTreeItem = createAzureDataAccountTreeItem(dataPlaneSessionProvider); - context.subscriptions.push(dataPlanAccountManagerTreeItem); - ext.workspaceItem = dataPlanAccountManagerTreeItem; - - const workspaceTreeDataProvider = new AzExtTreeDataProvider(dataPlanAccountManagerTreeItem, "appService.loadMore"); - ext.workspaceProvider = workspaceTreeDataProvider; - - vscode.window.registerTreeDataProvider('apiCenterWorkspace', workspaceTreeDataProvider); - - treeView.onDidChangeSelection((e: vscode.TreeViewSelectionChangeEvent) => { - const selectedNode = e.selection[0]; - ext.outputChannel.appendLine(selectedNode.id!); - ext.context.globalState.update(selectedNodeKey, selectedNode.id); - }); + setupControlView(context); + setupDataTreeView(context); // Register API Center extension commands @@ -203,4 +171,34 @@ async function registerCommandWithTelemetry(commandId: string, callback: Command }, debounce); } +function setupControlView(context: vscode.ExtensionContext) { + AzureSessionProviderHelper.activateAzureSessionProvider(context); + const sessionProvider = AzureSessionProviderHelper.getSessionProvider(); + const azureAccountTreeItem = createAzureAccountTreeItem(sessionProvider); + context.subscriptions.push(azureAccountTreeItem); + ext.treeItem = azureAccountTreeItem; + const treeDataProvider = new AzExtTreeDataProvider(azureAccountTreeItem, "appService.loadMore"); + ext.treeItem = azureAccountTreeItem; + ext.treeDataProvider = treeDataProvider; + const treeView = vscode.window.createTreeView("apiCenterTreeView", { treeDataProvider }); + context.subscriptions.push(treeView); + treeView.onDidChangeSelection((e: vscode.TreeViewSelectionChangeEvent) => { + const selectedNode = e.selection[0]; + ext.outputChannel.appendLine(selectedNode.id!); + ext.context.globalState.update(selectedNodeKey, selectedNode.id); + }); +} + +function setupDataTreeView(context: vscode.ExtensionContext) { + ext.dataPlaneAccounts = []; + AzureDataSessionProviderHelper.activateAzureSessionProvider(context); + const dataPlaneSessionProvider = AzureDataSessionProviderHelper.getSessionProvider(); + const dataPlanAccountManagerTreeItem = createAzureDataAccountTreeItem(dataPlaneSessionProvider); + context.subscriptions.push(dataPlanAccountManagerTreeItem); + ext.workspaceItem = dataPlanAccountManagerTreeItem; + const workspaceTreeDataProvider = new AzExtTreeDataProvider(dataPlanAccountManagerTreeItem, "appService.loadMore"); + ext.workspaceProvider = workspaceTreeDataProvider; + vscode.window.registerTreeDataProvider('apiCenterWorkspace', workspaceTreeDataProvider); +} + export function deactivate() { } diff --git a/src/uiStrings.ts b/src/uiStrings.ts index b9689f2..c8dac0a 100644 --- a/src/uiStrings.ts +++ b/src/uiStrings.ts @@ -124,4 +124,5 @@ export class UiStrings { static readonly AddDataPlaneTenantId = vscode.l10n.t("Input Entra App Tenant ID"); static readonly RequestFailedWithStatusCode = vscode.l10n.t("Request failed with status code: {0}"); static readonly DownloadDefinitionFileWithErrorMsg = vscode.l10n.t("Download API Center Definition File error: {0}"); + static readonly DatplaneAlreadyAdded = vscode.l10n.t("This Data Plane Runtime URL already added to Data View."); }