From 5a99ef09aa26f00a220c27b90ad57ae987e7f47e Mon Sep 17 00:00:00 2001 From: Rodrigo Rodriguez Date: Sun, 14 Jun 2020 18:06:29 -0300 Subject: [PATCH] new(admin.gbapp): Publish command will publish every package type. --- packages/admin.gbapp/dialogs/AdminDialog.ts | 28 ++++--- packages/core.gbapp/dialogs/WelcomeDialog.ts | 1 + packages/core.gbapp/services/GBMinService.ts | 74 ++++++++++--------- .../services/WhatsappDirectLine.ts | 2 - 4 files changed, 60 insertions(+), 45 deletions(-) diff --git a/packages/admin.gbapp/dialogs/AdminDialog.ts b/packages/admin.gbapp/dialogs/AdminDialog.ts index 70a6a535..cf76fd6a 100644 --- a/packages/admin.gbapp/dialogs/AdminDialog.ts +++ b/packages/admin.gbapp/dialogs/AdminDialog.ts @@ -232,18 +232,22 @@ export class AdminDialog extends IGBDialog { step.activeDialog.state.options.args.split(' ')[0] : null; const packages = []; + let skipError = false; if (filename === null || filename === "") { - await min.conversationalService.sendText(min, step, `Starting publishing for ${botId}.gbkb...`); + await min.conversationalService.sendText(min, step, `Starting publishing for ${botId} packages...`); packages.push(`${botId}.gbkb`); + packages.push(`${botId}.gbtheme`); + packages.push(`${botId}.gbdialog`); + packages.push(`${botId}.gbot`); + skipError = true; } else { await min.conversationalService.sendText(min, step, `Starting publishing for ${filename}...`); packages.push(filename); } - try { - - await CollectionUtil.asyncForEach(packages, async packageName => { + await CollectionUtil.asyncForEach(packages, async packageName => { + try { const cmd1 = `deployPackage ${process.env.STORAGE_SITE} /${process.env.STORAGE_LIBRARY}/${botId}.gbai/${packageName}`; if (await (deployer as any).getStoragePackageByName(min.instance.instanceId, @@ -253,12 +257,16 @@ export class AdminDialog extends IGBDialog { } await GBAdminService.deployPackageCommand(min, cmd1, deployer); await min.conversationalService.sendText(min, step, `Finished publishing ${packageName}.`); - }); - } catch (error) { - await min.conversationalService.sendText(min, step, `ERROR: ${error}`); - GBLog.error(error); - return await step.replaceDialog('/ask', { isReturning: true }); - } + + } catch (error) { + GBLog.error(error); + if (!skipError) { + await min.conversationalService.sendText(min, step, `ERROR: ${error}`); + + return await step.replaceDialog('/ask', { isReturning: true }); + } + } + }); await min.conversationalService.sendText(min, step, Messages[locale].publish_success); if (!step.activeDialog.state.options.confirm) { return await step.replaceDialog('/ask', { isReturning: true }); diff --git a/packages/core.gbapp/dialogs/WelcomeDialog.ts b/packages/core.gbapp/dialogs/WelcomeDialog.ts index df699ae7..6b155090 100644 --- a/packages/core.gbapp/dialogs/WelcomeDialog.ts +++ b/packages/core.gbapp/dialogs/WelcomeDialog.ts @@ -81,6 +81,7 @@ export class WelcomeDialog extends IGBDialog { : Messages[locale].good_night; await min.conversationalService.sendText(min, step, Messages[locale].hi(msg)); + await step.replaceDialog('/ask', { firstTime: true }); if ( diff --git a/packages/core.gbapp/services/GBMinService.ts b/packages/core.gbapp/services/GBMinService.ts index 489b3453..54d92a98 100644 --- a/packages/core.gbapp/services/GBMinService.ts +++ b/packages/core.gbapp/services/GBMinService.ts @@ -666,6 +666,7 @@ export class GBMinService { const simpleLocale = context.activity.locale.substring(0, 2); const hasBadWord = wash.check(simpleLocale, context.activity.text); + if (hasBadWord) { await step.beginDialog('/pleaseNoBadWords'); } else if (isVMCall) { @@ -693,43 +694,50 @@ export class GBMinService { await step.continueDialog(); } else { - let query = context.activity.text; - - const translatorEnabled = () => { - if (min.instance.params) { - const params = JSON.parse(min.instance.params); - return params['Enable Worldwide Translator'] === "TRUE"; - } - return false; - } // TODO: Encapsulate. - - let locale = 'pt'; - if (process.env.TRANSLATOR_DISABLED !== "true" || translatorEnabled()) { - const minBoot = GBServer.globals.minBoot as any; // TODO: Switch keys automatically to master/per bot. - locale = await AzureText.getLocale(minBoot.instance.textAnalyticsKey ? - minBoot.instance.textAnalyticsKey : minBoot.instance.textAnalyticsKey, - minBoot.instance.textAnalyticsEndpoint ? - minBoot.instance.textAnalyticsEndpoint : minBoot.instance.textAnalyticsEndpoint, query); + if (!await this.deployer.getStoragePackageByName(min.instance.instanceId, `${min.instance.botId}.gbkb`)) { + await step.context.sendActivity(`Oi, ainda não possuo pacotes de conhecimento publicados. Por favor, aguarde alguns segundos enquanto eu auto-publico alguns pacotes.`); + return await step.beginDialog('/publish', { confirm: true }); } + else { - let sec = new SecService(); - const member = step.context.activity.from; + let query = context.activity.text; - const user = await sec.ensureUser(min.instance.instanceId, member.id, - member.name, "", "web", member.name); - user.locale = locale; - await user.save(); - const minBoot = GBServer.globals.minBoot as any; - query = await min.conversationalService.translate(min, - min.instance.translatorKey ? min.instance.translatorKey : minBoot.instance.translatorKey, - min.instance.translatorEndpoint ? min.instance.translatorEndpoint : minBoot.instance.translatorEndpoint, - query, - 'pt'); - GBLog.info(`Translated text: ${query}.`) + const translatorEnabled = () => { + if (min.instance.params) { + const params = JSON.parse(min.instance.params); + return params['Enable Worldwide Translator'] === "TRUE"; + } + return false; + } // TODO: Encapsulate. - await step.beginDialog('/answer', { - query: query - }); + let locale = 'pt'; + if (process.env.TRANSLATOR_DISABLED !== "true" || translatorEnabled()) { + const minBoot = GBServer.globals.minBoot as any; // TODO: Switch keys automatically to master/per bot. + locale = await AzureText.getLocale(minBoot.instance.textAnalyticsKey ? + minBoot.instance.textAnalyticsKey : minBoot.instance.textAnalyticsKey, + minBoot.instance.textAnalyticsEndpoint ? + minBoot.instance.textAnalyticsEndpoint : minBoot.instance.textAnalyticsEndpoint, query); + } + + let sec = new SecService(); + const member = step.context.activity.from; + + const user = await sec.ensureUser(min.instance.instanceId, member.id, + member.name, "", "web", member.name); + user.locale = locale; + await user.save(); + const minBoot = GBServer.globals.minBoot as any; + query = await min.conversationalService.translate(min, + min.instance.translatorKey ? min.instance.translatorKey : minBoot.instance.translatorKey, + min.instance.translatorEndpoint ? min.instance.translatorEndpoint : minBoot.instance.translatorEndpoint, + query, + 'pt'); + GBLog.info(`Translated text: ${query}.`) + + await step.beginDialog('/answer', { + query: query + }); + } } } } diff --git a/packages/whatsapp.gblib/services/WhatsappDirectLine.ts b/packages/whatsapp.gblib/services/WhatsappDirectLine.ts index d9c27f74..460be378 100644 --- a/packages/whatsapp.gblib/services/WhatsappDirectLine.ts +++ b/packages/whatsapp.gblib/services/WhatsappDirectLine.ts @@ -150,8 +150,6 @@ export class WhatsappDirectLine extends GBService { } public async received(req, res) { - - if (req.body.messages === undefined) { res.end(); return; // Exit here.