export async function createEventHandler()

in tools/vscode-azurewebpubsub/src/workflows/hubSetting/EventHandler/create/createEventHandler.ts [19:51]


export async function createEventHandler(context: IActionContext, node?: HubSettingItem | EventHandlersItem): Promise<void> {
    const parentHubSetting = node 
                       ? (node instanceof HubSettingItem ? node : node.hubItem)
                       : await pickHubSetting(context);
    if (!parentHubSetting) {
        throw new Error(localize('invalidParentHubSetting', 'Invalid Parent Hub Setting'));
    }

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

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

    const wizard: AzureWizard<ICreateOrUpdateHubSettingContext> = new AzureWizard(wizardContext, {
        title: localize('createEventHandler', `Create new event handler in hub setting ${parentHubSetting.hub.hubName}`),
        promptSteps: [ new CreateOrUpdateEventHandlerStep(true) ],
        executeSteps: [ new CreateOrUpdateHubSettingStep(client, false) ]
    });

    await wizard.prompt();
    await wizard.execute();
    ext.branchDataProvider.refresh();
}