diff --git a/packages/admin.gbapp/dialogs/AdminDialog.ts b/packages/admin.gbapp/dialogs/AdminDialog.ts index 5385bf35..c5c1c475 100644 --- a/packages/admin.gbapp/dialogs/AdminDialog.ts +++ b/packages/admin.gbapp/dialogs/AdminDialog.ts @@ -39,7 +39,7 @@ const crypto = require('crypto'); const rimraf = require('rimraf'); import { WaterfallDialog } from 'botbuilder-dialogs'; -import { GBMinInstance, IGBDialog } from 'botlib'; +import { GBMinInstance, IGBDialog, GBLog } from 'botlib'; import urlJoin = require('url-join'); import { AzureDeployerService } from '../../azuredeployer.gbapp/services/AzureDeployerService'; import { GBConfigService } from '../../core.gbapp/services/GBConfigService'; @@ -80,6 +80,7 @@ export class AdminDialog extends IGBDialog { let folderName = text.split(' ')[2]; let localFolder = Path.join('work', Path.basename(folderName)); + GBLog.warn(`${GBConfigService.get('CLOUD_USERNAME')} must be authorized on SharePoint related site`); await s.downloadFolder(localFolder, siteName, folderName, GBConfigService.get('CLOUD_USERNAME'), GBConfigService.get('CLOUD_PASSWORD')) await deployer.deployPackage(min, localFolder); @@ -152,6 +153,12 @@ export class AdminDialog extends IGBDialog { } else if (cmdName === 'deployPackage') { await AdminDialog.deployPackageCommand(min, text, deployer); + return await step.replaceDialog('/admin', { firstRun: false }); + } else if (cmdName === 'dp') { + let BOT_NAME = text; + let address = `https://pragmatismo.sharepoint.com/sites/bots /Shared%20Documents/Rascunho/${BOT_NAME}/${BOT_NAME}.gbai/${BOT_NAME}.gbkb`; + await AdminDialog.deployPackageCommand(min, address, deployer); + return await step.replaceDialog('/admin', { firstRun: false }); } else if (cmdName === 'redeployPackage') { await step.context.sendActivity('The package is being *unloaded*...'); diff --git a/packages/core.gbapp/services/GBConfigService.ts b/packages/core.gbapp/services/GBConfigService.ts index ca5365e5..f5782140 100644 --- a/packages/core.gbapp/services/GBConfigService.ts +++ b/packages/core.gbapp/services/GBConfigService.ts @@ -126,6 +126,9 @@ export class GBConfigService { case 'REVERSE_PROXY': value = undefined; break; + case 'STORAGE_ACQUIRE_TIMEOUT': + value = 40000; + break; default: GBLog.warn(`Invalid key on .env file: '${key}'`); break; diff --git a/packages/core.gbapp/services/GBConversationalService.ts b/packages/core.gbapp/services/GBConversationalService.ts index 25fd0c03..ef527862 100644 --- a/packages/core.gbapp/services/GBConversationalService.ts +++ b/packages/core.gbapp/services/GBConversationalService.ts @@ -82,7 +82,7 @@ export class GBConversationalService implements IGBConversationalService { msg.type = 'event'; msg.name = name; - return step.context.sendActivity(msg); + return await step.context.sendActivity(msg); } } diff --git a/packages/core.gbapp/services/GBCoreService.ts b/packages/core.gbapp/services/GBCoreService.ts index b90274bf..8ff638a1 100644 --- a/packages/core.gbapp/services/GBCoreService.ts +++ b/packages/core.gbapp/services/GBCoreService.ts @@ -131,6 +131,7 @@ export class GBCoreService implements IGBCoreService { const encrypt: boolean = GBConfigService.get('STORAGE_ENCRYPT') === 'true'; + const acquire = parseInt(GBConfigService.get('STORAGE_ACQUIRE_TIMEOUT')); this.sequelize = new Sequelize({ host: host, database: database, @@ -149,7 +150,7 @@ export class GBCoreService implements IGBCoreService { min: 8, idle: 40000, evict: 40000, - acquire: 40000 + acquire: acquire } }); @@ -291,8 +292,8 @@ STORAGE_SYNC=true let instance = await GuaribasInstance.findOne(options); // tslint:disable-next-line:prefer-object-spread instance = Object.assign(instance, fullInstance); - - return await instance.save(); + let ret = await instance.save(); + return ret; } /** diff --git a/packages/core.gbapp/services/GBDeployer.ts b/packages/core.gbapp/services/GBDeployer.ts index d7c122db..f443f1bf 100644 --- a/packages/core.gbapp/services/GBDeployer.ts +++ b/packages/core.gbapp/services/GBDeployer.ts @@ -207,6 +207,7 @@ export class GBDeployer { instance.storageName = bootInstance.storageName; instance.storageUsername = bootInstance.storageUsername; instance.storagePassword = bootInstance.storagePassword; + instance.webchatKey = bootInstance.webchatKey; instance = await service.internalDeployBot( instance, diff --git a/packages/core.gbapp/services/GBImporterService.ts b/packages/core.gbapp/services/GBImporterService.ts index e9fba61c..7345a234 100644 --- a/packages/core.gbapp/services/GBImporterService.ts +++ b/packages/core.gbapp/services/GBImporterService.ts @@ -54,35 +54,41 @@ export class GBImporter { } public async importIfNotExistsBotPackage(botId: string, packageName: string, localPath: string) { - const packageJson = JSON.parse(fs.readFileSync(urlJoin(localPath, 'package.json'), 'utf8')); + const settingsJson = JSON.parse(fs.readFileSync(urlJoin(localPath, 'settings.json'), 'utf8')); if (botId === undefined) { - botId = packageJson.botId; + botId = settingsJson.botId; } if (botId === undefined) { botId = GBConfigService.get('BOT_ID'); } const instance = await this.core.loadInstance(botId); - - return await this.createOrUpdateInstanceInternal(instance, botId, localPath, packageJson); + + if (instance.botId === undefined || instance.botId === null) { + console.log("••• Atenção botId é nulo ou undefined"); + } + return await this.createOrUpdateInstanceInternal(instance, botId, localPath, settingsJson); } private async createOrUpdateInstanceInternal(instance: IGBInstance, - botId: string, localPath: string, packageJson: any) { - const settings = JSON.parse(fs.readFileSync(urlJoin(localPath, 'settings.json'), 'utf8')); + botId: string, localPath: string, settingsJson: any) { + let packageJson = JSON.parse(fs.readFileSync(urlJoin(localPath, 'package.json'), 'utf8')); const servicesJson = JSON.parse(fs.readFileSync(urlJoin(localPath, 'services.json'), 'utf8')); - packageJson = { ...GBServer.globals.bootInstance, ...packageJson, ...settings, ...servicesJson }; + let fullSettingsJson = { ...GBServer.globals.bootInstance, ...packageJson, ...settingsJson, ...servicesJson }; if (botId !== undefined) { - packageJson.botId = botId; + fullSettingsJson.botId = botId; } if (instance !== null) { - instance = { ...instance, ...packageJson, ...settings, ...servicesJson }; + instance = { ...instance, ...fullSettingsJson }; - return this.core.saveInstance(instance); + if (instance.botId === undefined || instance.botId === null) { + console.log("••• Atenção botId é nulo ou undefined"); + } + return await this.core.saveInstance(instance); } else { - return await GuaribasInstance.create(packageJson); + return await GuaribasInstance.create(fullSettingsJson); } } }