diff --git a/packages/core.gbapp/index.ts b/packages/core.gbapp/index.ts index 190a65fe..ca354a24 100644 --- a/packages/core.gbapp/index.ts +++ b/packages/core.gbapp/index.ts @@ -43,7 +43,7 @@ import { LanguageDialog } from './dialogs/LanguageDialog.js'; import { SwitchBotDialog } from './dialogs/SwitchBot.js'; import { WelcomeDialog } from './dialogs/WelcomeDialog.js'; import { WhoAmIDialog } from './dialogs/WhoAmIDialog.js'; -import { GuaribasChannel, GuaribasInstance, GuaribasLog, GuaribasPackage } from './models/GBModel.js'; +import { GuaribasApplications, GuaribasChannel, GuaribasInstance, GuaribasLog, GuaribasPackage } from './models/GBModel.js'; /** * Package for core.gbapp. @@ -53,7 +53,7 @@ export class GBCorePackage implements IGBPackage { public CurrentEngineName = 'guaribas-1.0.0'; public async loadPackage (core: IGBCoreService, sequelize: Sequelize): Promise { - core.sequelize.addModels([GuaribasInstance, GuaribasPackage, GuaribasChannel, GuaribasLog]); + core.sequelize.addModels([GuaribasInstance, GuaribasPackage, GuaribasChannel, GuaribasLog, GuaribasApplications]); } public async getDialogs (min: GBMinInstance) { diff --git a/packages/core.gbapp/services/GBCoreService.ts b/packages/core.gbapp/services/GBCoreService.ts index 28c6a392..4329ed92 100644 --- a/packages/core.gbapp/services/GBCoreService.ts +++ b/packages/core.gbapp/services/GBCoreService.ts @@ -50,7 +50,7 @@ import { GBCustomerSatisfactionPackage } from '../../customer-satisfaction.gbapp import { GBKBPackage } from '../../kb.gbapp/index.js'; import { GBSecurityPackage } from '../../security.gbapp/index.js'; import { GBWhatsappPackage } from '../../whatsapp.gblib/index.js'; -import { GuaribasInstance, GuaribasLog } from '../models/GBModel.js'; +import { GuaribasApplications, GuaribasInstance, GuaribasLog } from '../models/GBModel.js'; import { GBConfigService } from './GBConfigService.js'; import { GBAzureDeployerPackage } from '../../azuredeployer.gbapp/index.js'; import { GBSharePointPackage } from '../../sharepoint.gblib/index.js'; @@ -60,6 +60,8 @@ import { GBGoogleChatPackage } from '../../google-chat.gblib/index.js'; import { GBHubSpotPackage } from '../../hubspot.gblib/index.js'; import open from 'open'; import ngrok from 'ngrok'; +import Path from 'path'; +import { file } from 'googleapis/build/src/apis/file/index.js'; /** * GBCoreService contains main logic for handling storage services related @@ -396,6 +398,25 @@ ENDPOINT_UPDATE=true return await instance.save(); } + /** + * Loads all bot instances from object storage, if it's formatted. + */ + public async getApplicationsByInstanceId(appPackages, instanceId: number) { + const options = { where: { instanceId: instanceId } }; + const apps = await GuaribasApplications.findAll(options); + + let matchingAppPackages = []; + await CollectionUtil.asyncForEach(appPackages, async appPackage => { + const filenameOnly = Path.basename(appPackage.name); + const matchedApp = apps.find(app => app.name === filenameOnly || app.name === filenameOnly); + if (matchedApp) { + matchingAppPackages.push(appPackage); + } + }); + + return matchingAppPackages; + } + /** * Loads all bot instances from object storage, if it's formatted. */ diff --git a/packages/core.gbapp/services/GBMinService.ts b/packages/core.gbapp/services/GBMinService.ts index 9f0321b8..d8fe0674 100644 --- a/packages/core.gbapp/services/GBMinService.ts +++ b/packages/core.gbapp/services/GBMinService.ts @@ -707,8 +707,7 @@ export class GBMinService { min['scheduleMap'] = {}; min['conversationWelcomed'] = {}; min.packages = sysPackages; - min.appPackages = appPackages; - + // NLP Manager. const manager = new NlpManager({ languages: ['pt'], forceNER: true }); @@ -726,7 +725,7 @@ export class GBMinService { }); } // https://github.com/GeneralBots/BotServer/issues/123 - // min.appPackages = core.getPackagesByInstanceId(min.instance.instanceId); + min.appPackages = await this.core['getApplicationsByInstanceId'] (appPackages, min.instance.instanceId); // Creates a hub of services available in .gbapps.