new(core.gbapp): GB Apps can now publish bots and replace root dialog.

This commit is contained in:
Rodrigo Rodriguez 2020-02-26 15:20:47 -03:00
parent eed995e460
commit 3171911c78
7 changed files with 24 additions and 16 deletions

View file

@ -57,9 +57,8 @@ export class WelcomeDialog extends IGBDialog {
min.dialogs.add(new WaterfallDialog('/', [ min.dialogs.add(new WaterfallDialog('/', [
async step => { async step => {
if (GBServer.globals.entryPointDialog !== undefined) if (GBServer.globals.entryPointDialog !== null)
{ {
return step.replaceDialog(GBServer.globals.entryPointDialog); return step.replaceDialog(GBServer.globals.entryPointDialog);
} }

View file

@ -92,7 +92,7 @@ export class GBDeployer {
const _this = this; const _this = this;
return new Promise( return new Promise(
async (resolve: any, reject: any)=> { async (resolve: any, reject: any) => {
GBLog.info(`PWD ${process.env.PWD}...`); GBLog.info(`PWD ${process.env.PWD}...`);
let totalPackages = 0; let totalPackages = 0;
let paths = [urlJoin(process.env.PWD, GBDeployer.deployFolder), urlJoin(process.env.PWD, GBDeployer.workFolder)]; let paths = [urlJoin(process.env.PWD, GBDeployer.deployFolder), urlJoin(process.env.PWD, GBDeployer.workFolder)];
@ -163,7 +163,7 @@ export class GBDeployer {
); );
} }
public async deployBlankBot(botId: string){ public async deployBlankBot(botId: string) {
let instance = await this.importer.createBotInstance(botId); let instance = await this.importer.createBotInstance(botId);
const username = GBConfigService.get('CLOUD_USERNAME'); const username = GBConfigService.get('CLOUD_USERNAME');
@ -519,8 +519,7 @@ export class GBDeployer {
try { try {
child_process.execSync(Path.join(process.env.PWD, 'node_modules/.bin/tsc'), { cwd: e }); child_process.execSync(Path.join(process.env.PWD, 'node_modules/.bin/tsc'), { cwd: e });
GBLog.info(`Importando o pacote '${e}' on dir ${process.env.PWD}`); const m = await import(e);
const m = await import(Path.join(process.env.PWD, e));
const p = new m.Package(); const p = new m.Package();
p.loadPackage(core, core.sequelize); p.loadPackage(core, core.sequelize);
appPackages.push(p); appPackages.push(p);

View file

@ -110,10 +110,11 @@ export class GBMinService {
) { ) {
// Serves default UI on root address '/' if web enabled. // Serves default UI on root address '/' if web enabled.
if (process.env.DISABLE_WEB !== 'true') { if (process.env.DISABLE_WEB !== 'true') {
let url = urlJoin(GBDeployer.deployFolder, GBMinService.uiPackage, 'build'); let url = GBServer.globals.wwwroot ?
GBServer.globals.wwwroot :
urlJoin(GBDeployer.deployFolder, GBMinService.uiPackage, 'build');
GBServer.globals.server.use('/', express.static(GBServer.globals.wwwroot ? GBServer.globals.server.use('/', express.static(url));
GBServer.globals.wwwroot : url));
} }
// Serves the bot information object via HTTP so clients can get // Serves the bot information object via HTTP so clients can get
// instance information stored on server. // instance information stored on server.
@ -483,6 +484,7 @@ export class GBMinService {
appPackages.forEach(e => { appPackages.forEach(e => {
e.onNewSession(min, step); e.onNewSession(min, step);
}); });
await step.beginDialog('/');
} else { } else {
GBLog.info(`Member added to conversation: ${member.name}`); GBLog.info(`Member added to conversation: ${member.name}`);
} }

View file

@ -1,8 +1,8 @@
{ {
"name": "default.gbui", "name": "default.gbui",
"version": "0.0.13", "version": "1.0.0",
"private": false, "private": false,
"repository": "https://github.com/pragmatismo-io/BotServer", "repository": "https://github.com/GeneralBots/BotServer",
"description": "Default web interface for General Bots open-core", "description": "Default web interface for General Bots open-core",
"license": "AGPL-3.0", "license": "AGPL-3.0",
"homepage": ".", "homepage": ".",

View file

@ -138,6 +138,11 @@ class GBUIApp extends React.Component {
} }
authenticate() { authenticate() {
if (this.state.instanceClient.authenticatorClientId === null) {
return;
}
let _this_ = this; let _this_ = this;
let authority = 'https://login.microsoftonline.com/' + this.state.instanceClient.authenticatorTenant; let authority = 'https://login.microsoftonline.com/' + this.state.instanceClient.authenticatorTenant;

View file

@ -251,7 +251,7 @@ export class WhatsappDirectLine extends GBService {
const result = await request.post(options); const result = await request.post(options);
GBLog.info(result); GBLog.info(result);
} catch (error) { } catch (error) {
GBLog.error(`Error sending message to Whatsapp provider ${error.message}`); GBLog.error(`Error sending file to Whatsapp provider ${error.message}`);
} }
} }
@ -274,7 +274,7 @@ export class WhatsappDirectLine extends GBService {
const result = await request.post(options); const result = await request.post(options);
GBLog.info(result); GBLog.info(result);
} catch (error) { } catch (error) {
GBLog.error(`Error sending message to Whatsapp provider ${error.message}`); GBLog.error(`Error sending audio message to Whatsapp provider ${error.message}`);
} }
} }
@ -298,6 +298,8 @@ export class WhatsappDirectLine extends GBService {
GBLog.info(result); GBLog.info(result);
} catch (error) { } catch (error) {
GBLog.error(`Error sending message to Whatsapp provider ${error.message}`); GBLog.error(`Error sending message to Whatsapp provider ${error.message}`);
// TODO: Handle Error: socket hang up and retry.
} }
} }
} }

View file

@ -90,6 +90,7 @@ export class GBServer {
GBServer.globals.sysPackages = []; GBServer.globals.sysPackages = [];
GBServer.globals.minInstances = []; GBServer.globals.minInstances = [];
GBServer.globals.wwwroot = null; GBServer.globals.wwwroot = null;
GBServer.globals.entryPointDialog = null;
server.use(bodyParser.json()); server.use(bodyParser.json());
server.use(bodyParser.urlencoded({ extended: true })); server.use(bodyParser.urlencoded({ extended: true }));