in packages/MSBot/src/msbot-connect-bot.ts [77:139]
async function processConnectAzureArgs(config: BotConfiguration): Promise<BotConfiguration> {
if (args.stdin) {
Object.assign(args, JSON.parse(await getStdin()));
} else if (args.input != null) {
Object.assign(args, await fs.readJSON(<string>args.input));
}
args.serviceName = args.serviceName || args.name || args.id || '';
if (!args.serviceName || args.serviceName.length === 0) {
throw new Error('Bad or missing --serviceName');
}
if (!args.tenantId || args.tenantId.length === 0) {
throw new Error('Bad or missing --tenantId');
}
if (!args.subscriptionId || !uuidValidate(args.subscriptionId)) {
throw new Error('Bad or missing --subscriptionId');
}
if (!args.resourceGroup || args.resourceGroup.length === 0) {
throw new Error('Bad or missing --resourceGroup for registered bot');
}
if (!args.appId || !uuidValidate(args.appId)) {
throw new Error('Bad or missing --appId');
}
const services: IConnectedService[] = [];
const service: BotService = new BotService({
name: args.hasOwnProperty('name') ? args.name : args.serviceName,
serviceName: args.serviceName,
tenantId: args.tenantId,
subscriptionId: args.subscriptionId,
resourceGroup: args.resourceGroup,
appId: args.appId
});
config.connectService(service);
services.push(service);
if (!args.endpoint || !(new url.URL(args.endpoint).protocol.startsWith('http'))) {
throw new Error('Bad or missing --endpoint');
}
if (!args.appPassword || args.appPassword.length === 0) {
throw new Error('Bad or missing --appPassword');
}
const endpointService: EndpointService = new EndpointService({
type: ServiceTypes.Endpoint,
name: args.hasOwnProperty('name') ? args.name : args.endpoint,
appId: args.appId,
appPassword: args.appPassword,
endpoint: args.endpoint
});
config.connectService(endpointService);
services.push(endpointService);
await config.save(args.secret);
await stdoutAsync(JSON.stringify(services, null, 2));
return config;
}