export async function switchAnonymousPolicy()

in tools/vscode-azurewebpubsub/src/workflows/hubSetting/switchAnonymousPolicy/switchAnonymousPolicy.ts [21:56]


export async function switchAnonymousPolicy(context: IActionContext, node?: HubSettingItem | AnonymousPolicyItem ): Promise<void> {
    node = node 
        ? (node instanceof HubSettingItem ? node : node.hubItem)
        : await pickHubSetting(context);

    const service: ServiceItem = node.service;
    const subContext = createSubscriptionContext(service.subscription);
    const targetPolicy = node.hub.properties.anonymousConnectPolicy === KnownAnonymousConnectPolicy.Allow ? KnownAnonymousConnectPolicy.Deny : KnownAnonymousConnectPolicy.Allow;

    const wizardContext: ICreateOrUpdateHubSettingContext = {
        ...context,
        ...await createActivityContext(),
        subscription: subContext,
        resourceGroupName: service.resourceGroup, 
        serviceName: service.name,
        hubName: node.hub.hubName,
        hubProperties: {
            ...node.hub.properties,
            anonymousConnectPolicy: targetPolicy
        }
    };

    const client = createAzureClient([context, subContext], WebPubSubManagementClient);

    const wizard: AzureWizard<ICreateOrUpdateHubSettingContext> = new AzureWizard(wizardContext, {
        title: localize('switchingAnonymousPolicy', `Switching anonymous connect policy from {0} to {1}`, node.hub.properties.anonymousConnectPolicy, targetPolicy),
        promptSteps: [],
        executeSteps: [new CreateOrUpdateHubSettingStep(client, false)]
    });

    await wizard.prompt();
    wizardContext.activityTitle = utils.localize('switchingAnonymousPolicy', 'Switching anonymous connect policy for hub setting {0} from "{1}" to "{2}"', wizardContext.hubName, node.hub.properties.anonymousConnectPolicy, targetPolicy);
    await wizard.execute();
    
    ext.branchDataProvider.refresh();
}