Finishing merge on v4 branch.
This commit is contained in:
parent
3f9b289499
commit
2584717ae8
15 changed files with 96 additions and 111 deletions
|
@ -111,8 +111,6 @@ export class GuaribasInstance extends Model<GuaribasInstance> implements IGBInst
|
|||
@Column ui: string;
|
||||
|
||||
@Column kb: string;
|
||||
|
||||
@Column(DataType.STRING(512)) nlpServerUrl: string;
|
||||
|
||||
@Column
|
||||
nlpAppId: string;
|
||||
|
|
|
@ -85,7 +85,7 @@ export class GBConfigService {
|
|||
break;
|
||||
|
||||
default:
|
||||
logger.trace(
|
||||
logger.info(
|
||||
`Guaribas General Error: Invalid key on .env file: '${key}'`
|
||||
);
|
||||
break;
|
||||
|
|
|
@ -85,14 +85,14 @@ export class GBConversationalService implements IGBConversationalService {
|
|||
res.entities && res.entities.length > 0
|
||||
? res.entities[0].entity.toUpperCase()
|
||||
: null;
|
||||
logger.trace(
|
||||
logger.info(
|
||||
"luis: intent: [" + intent + "] entity: [" + entity + "]"
|
||||
);
|
||||
|
||||
try {
|
||||
dc.replace("/" + intent);
|
||||
} catch (error) {
|
||||
logger.trace("error: intent: [" + intent + "] error: [" + error + "]");
|
||||
logger.info("error: intent: [" + intent + "] error: [" + error + "]");
|
||||
|
||||
dc.context.sendActivity("Desculpe-me, não encontrei nada a respeito...");
|
||||
dc.replace("/ask", { isReturning: true });
|
||||
|
|
|
@ -87,7 +87,7 @@ export class GBCoreService implements IGBCoreService {
|
|||
}
|
||||
|
||||
let logging = (GBConfigService.get("DATABASE_LOGGING") === "true")
|
||||
? (str: string) => { logger.trace(str); }
|
||||
? (str: string) => { logger.info(str); }
|
||||
: false;
|
||||
|
||||
let encrypt = (GBConfigService.get("DATABASE_ENCRYPT") === "true");
|
||||
|
@ -196,16 +196,16 @@ export class GBCoreService implements IGBCoreService {
|
|||
if (GBConfigService.get("DATABASE_SYNC") === "true") {
|
||||
const alter = (GBConfigService.get("DATABASE_SYNC_ALTER") === "true");
|
||||
const force = (GBConfigService.get("DATABASE_SYNC_FORCE") === "true");
|
||||
logger.trace("Syncing database...");
|
||||
logger.info("Syncing database...");
|
||||
this.sequelize.sync({
|
||||
alter: alter,
|
||||
force: force
|
||||
}).then(value => {
|
||||
logger.trace("Database synced.");
|
||||
logger.info("Database synced.");
|
||||
cb();
|
||||
}, err => logger.error(err));
|
||||
} else {
|
||||
logger.trace("Database synchronization is disabled.");
|
||||
logger.info("Database synchronization is disabled.");
|
||||
cb();
|
||||
}
|
||||
}
|
||||
|
@ -229,7 +229,7 @@ export class GBCoreService implements IGBCoreService {
|
|||
if (reason.message.indexOf("no such table: GuaribasInstance") != -1) {
|
||||
cb([], null);
|
||||
} else {
|
||||
logger.trace(`GuaribasServiceError: ${reason}`);
|
||||
logger.info(`GuaribasServiceError: ${reason}`);
|
||||
cb(null, reason);
|
||||
}
|
||||
});
|
||||
|
@ -255,7 +255,7 @@ export class GBCoreService implements IGBCoreService {
|
|||
})
|
||||
.catch(err => {
|
||||
cb(null, err);
|
||||
logger.trace(`GuaribasServiceError: ${err}`);
|
||||
logger.info(`GuaribasServiceError: ${err}`);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
|
|
@ -79,7 +79,7 @@ export class GBDeployer {
|
|||
localPath,
|
||||
(data, err) => {
|
||||
if (err) {
|
||||
logger.trace(err);
|
||||
logger.info(err);
|
||||
} else {
|
||||
cb(data, null);
|
||||
}
|
||||
|
@ -216,8 +216,8 @@ export class GBDeployer {
|
|||
this.deployPackageFromLocalPath(
|
||||
UrlJoin(deployFolder, bootPackage),
|
||||
(data, err) => {
|
||||
logger.trace(`Boot package deployed: ${bootPackage}`);
|
||||
if (err) logger.trace(err);
|
||||
logger.info(`Boot package deployed: ${bootPackage}`);
|
||||
if (err) logger.info(err);
|
||||
}
|
||||
);
|
||||
}
|
||||
|
|
|
@ -99,7 +99,7 @@ export class GBImporter {
|
|||
|
||||
// PACKAGE: security.json loading
|
||||
let service = new SecService();
|
||||
service.importSecurityFile(localPath, instance);
|
||||
// TODO: service.importSecurityFile(localPath, instance);
|
||||
|
||||
cb(instance, null);
|
||||
});
|
||||
|
|
|
@ -203,7 +203,7 @@ export class GBMinService {
|
|||
e.sysPackages = new Array<IGBPackage>();
|
||||
[GBAdminPackage, GBAnalyticsPackage, GBCorePackage, GBSecurityPackage,
|
||||
GBKBPackage, GBCustomerSatisfactionPackage, GBWhatsappPackage].forEach(sysPackage => {
|
||||
logger.trace(`Loading sys package: ${sysPackage.name}...`);
|
||||
logger.info(`Loading sys package: ${sysPackage.name}...`);
|
||||
let p = Object.create(sysPackage.prototype) as IGBPackage;
|
||||
p.loadBot(min);
|
||||
e.sysPackages.push(p);
|
||||
|
@ -226,7 +226,7 @@ export class GBMinService {
|
|||
// Serves individual URL for each bot conversational interface...
|
||||
|
||||
let url = `/api/messages/${instance.botId}`;
|
||||
logger.trace(
|
||||
logger.info(
|
||||
`GeneralBots(${instance.engineName}) listening on: ${url}.`
|
||||
);
|
||||
|
||||
|
@ -293,7 +293,7 @@ export class GBMinService {
|
|||
e.onNewSession(min, dc);
|
||||
});
|
||||
|
||||
logger.trace(
|
||||
logger.info(
|
||||
`[RCV]: ChannelID: ${context.activity.channelId}, ConversationID: ${context.activity.conversation.id}
|
||||
Type: ${context.activity.type}, Name: ${context.activity.name}, Text: ${context.activity.text}.`
|
||||
);
|
||||
|
@ -308,11 +308,11 @@ export class GBMinService {
|
|||
uiUrl,
|
||||
express.static(UrlJoin(this.deployFolder, uiPackage, "build"))
|
||||
);
|
||||
logger.trace(`Bot UI ${uiPackage} acessible at: ${uiUrl}.`);
|
||||
logger.info(`Bot UI ${uiPackage} acessible at: ${uiUrl}.`);
|
||||
|
||||
// Setups handlers.
|
||||
// send: function (context.activity, next) {
|
||||
// logger.trace(
|
||||
// logger.info(
|
||||
// `[SND]: ChannelID: ${context.activity.address.channelId}, ConversationID: ${context.activity.address.conversation},
|
||||
// Type: ${context.activity.type} `);
|
||||
// this.core.createMessage(
|
||||
|
@ -320,7 +320,7 @@ export class GBMinService {
|
|||
// this.min.conversation.startedBy,
|
||||
// context.activity.source,
|
||||
// (data, err) => {
|
||||
// logger.trace(context.activity.source);
|
||||
// logger.info(context.activity.source);
|
||||
// }
|
||||
// );
|
||||
// next();
|
||||
|
@ -356,7 +356,7 @@ export class GBMinService {
|
|||
let dirs = getDirectories(path);
|
||||
dirs.forEach(element => {
|
||||
if (element.startsWith('.')) {
|
||||
logger.trace(`Ignoring ${element}...`);
|
||||
logger.info(`Ignoring ${element}...`);
|
||||
}
|
||||
else {
|
||||
if (element.endsWith('.gbot')) {
|
||||
|
@ -373,9 +373,9 @@ export class GBMinService {
|
|||
|
||||
}
|
||||
|
||||
logger.trace(`Starting looking for generalPackages...`);
|
||||
logger.info(`Starting looking for generalPackages...`);
|
||||
paths.forEach(e => {
|
||||
logger.trace(`Looking in: ${e}...`);
|
||||
logger.info(`Looking in: ${e}...`);
|
||||
doIt(e);
|
||||
});
|
||||
|
||||
|
@ -385,17 +385,17 @@ export class GBMinService {
|
|||
let appPackagesProcessed = 0;
|
||||
|
||||
gbappPackages.forEach(e => {
|
||||
logger.trace(`Deploying app: ${e}...`);
|
||||
logger.info(`Deploying app: ${e}...`);
|
||||
// Skips .gbapp inside deploy folder.
|
||||
if (!e.startsWith('deploy')) {
|
||||
import(e).then(m => {
|
||||
let p = new m.Package();
|
||||
p.loadPackage(core, core.sequelize);
|
||||
appPackages.push(p);
|
||||
logger.trace(`App (.gbapp) deployed: ${e}.`);
|
||||
logger.info(`App (.gbapp) deployed: ${e}.`);
|
||||
appPackagesProcessed++;
|
||||
}).catch(err => {
|
||||
logger.trace(`Error deploying App (.gbapp): ${e}: ${err}`);
|
||||
logger.info(`Error deploying App (.gbapp): ${e}: ${err}`);
|
||||
appPackagesProcessed++;
|
||||
});
|
||||
} else {
|
||||
|
@ -408,20 +408,20 @@ export class GBMinService {
|
|||
.interval(1000)
|
||||
.times(10)
|
||||
.condition(function (cb) {
|
||||
logger.trace(`Waiting for app package deployment...`);
|
||||
logger.info(`Waiting for app package deployment...`);
|
||||
cb(appPackagesProcessed == gbappPackages.length);
|
||||
})
|
||||
.done(function (result) {
|
||||
logger.trace(`App Package deployment done.`);
|
||||
logger.info(`App Package deployment done.`);
|
||||
|
||||
core.syncDatabaseStructure(cb => {
|
||||
|
||||
/** Deploys all .gbot files first. */
|
||||
|
||||
botPackages.forEach(e => {
|
||||
logger.trace(`Deploying bot: ${e}...`);
|
||||
logger.info(`Deploying bot: ${e}...`);
|
||||
_this_.deployer.deployBot(e, (data, err) => {
|
||||
logger.trace(`Bot: ${e} deployed...`);
|
||||
logger.info(`Bot: ${e} deployed...`);
|
||||
});
|
||||
});
|
||||
|
||||
|
@ -432,7 +432,7 @@ export class GBMinService {
|
|||
generalPackages.forEach(filename => {
|
||||
|
||||
let filenameOnly = Path.basename(filename);
|
||||
logger.trace(`Deploying package: ${filename}...`);
|
||||
logger.info(`Deploying package: ${filename}...`);
|
||||
|
||||
/** Handles apps for general bots - .gbapp must stay out of deploy folder. */
|
||||
|
||||
|
@ -443,7 +443,7 @@ export class GBMinService {
|
|||
|
||||
} else if (Path.extname(filename) === ".gbtheme") {
|
||||
server.use("/themes/" + filenameOnly, express.static(filename));
|
||||
logger.trace(`Theme (.gbtheme) assets accessible at: ${"/themes/" + filenameOnly}.`);
|
||||
logger.info(`Theme (.gbtheme) assets accessible at: ${"/themes/" + filenameOnly}.`);
|
||||
|
||||
|
||||
/** Knowledge base for bots. */
|
||||
|
@ -453,7 +453,7 @@ export class GBMinService {
|
|||
"/kb/" + filenameOnly + "/subjects",
|
||||
express.static(UrlJoin(filename, "subjects"))
|
||||
);
|
||||
logger.trace(`KB (.gbkb) assets acessible at: ${"/kb/" + filenameOnly}.`);
|
||||
logger.info(`KB (.gbkb) assets acessible at: ${"/kb/" + filenameOnly}.`);
|
||||
}
|
||||
|
||||
else if (Path.extname(filename) === ".gbui" || filename.endsWith(".git")) {
|
||||
|
@ -473,7 +473,7 @@ export class GBMinService {
|
|||
.interval(1000)
|
||||
.times(5)
|
||||
.condition(function (cb) {
|
||||
logger.trace(`Waiting for package deployment...`);
|
||||
logger.info(`Waiting for package deployment...`);
|
||||
cb(totalPackages == (generalPackages.length));
|
||||
})
|
||||
.done(function (result) {
|
||||
|
@ -481,7 +481,7 @@ export class GBMinService {
|
|||
logger.info(`The bot server is running empty: No bot instances have been found, at least one .gbot file must be deployed.`);
|
||||
}
|
||||
else {
|
||||
logger.trace(`Package deployment done.`);
|
||||
logger.info(`Package deployment done.`);
|
||||
}
|
||||
resolve();
|
||||
});
|
||||
|
|
|
@ -75,7 +75,7 @@ export class QualityDialog extends IGBDialog {
|
|||
user.lastQuestion,
|
||||
user.lastQuestionId,
|
||||
(data, err) => {
|
||||
logger.trace("QuestionAlternate inserted.");
|
||||
logger.info("QuestionAlternate inserted.");
|
||||
}
|
||||
);
|
||||
|
||||
|
|
|
@ -84,7 +84,7 @@ export class AskDialog extends IGBDialog {
|
|||
// async (data, err) => {
|
||||
// var data = res.text;
|
||||
// if (data != text) {
|
||||
// logger.trace("Spelled Text: " + data);
|
||||
// logger.info("Spelled Text: " + data);
|
||||
// text = data;
|
||||
// }
|
||||
|
||||
|
|
|
@ -353,7 +353,7 @@ export class KBService {
|
|||
cb([], null);
|
||||
} else {
|
||||
cb(null, reason);
|
||||
logger.trace(`GuaribasServiceError: ${reason}`);
|
||||
logger.info(`GuaribasServiceError: ${reason}`);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
@ -394,7 +394,7 @@ export class KBService {
|
|||
answer = Fs.readFileSync(mediaFilename, "utf8");
|
||||
format = ".md";
|
||||
} else {
|
||||
logger.trace("[GBImporter] File not found: ", mediaFilename);
|
||||
logger.info("[GBImporter] File not found: ", mediaFilename);
|
||||
answer =
|
||||
"Por favor, contate a administração para rever esta pergunta.";
|
||||
}
|
||||
|
@ -524,16 +524,16 @@ export class KBService {
|
|||
packageId,
|
||||
(data, err) => {
|
||||
if (err) {
|
||||
logger.trace(err);
|
||||
logger.info(err);
|
||||
} else {
|
||||
logger.trace("Import KB done.");
|
||||
logger.info("Import KB done.");
|
||||
}
|
||||
}
|
||||
);
|
||||
}
|
||||
},
|
||||
function (err) {
|
||||
if (err) logger.trace(err);
|
||||
if (err) logger.info(err);
|
||||
}
|
||||
);
|
||||
}
|
||||
|
@ -602,7 +602,7 @@ export class KBService {
|
|||
deployKb(core: IGBCoreService, deployer: GBDeployer, localPath: string, cb: GBServiceCallback<any>) {
|
||||
let packageType = Path.extname(localPath);
|
||||
let packageName = Path.basename(localPath);
|
||||
logger.trace("[GBDeployer] Opening package: ", packageName);
|
||||
logger.info("[GBDeployer] Opening package: ", packageName);
|
||||
let packageObject = JSON.parse(
|
||||
Fs.readFileSync(UrlJoin(localPath, "package.json"), "utf8")
|
||||
);
|
||||
|
|
|
@ -203,8 +203,8 @@ export class WhatsappDirectLine extends GBService {
|
|||
if (activities && activities.length) {
|
||||
|
||||
// Ignore own messages.
|
||||
// TODO: this.botId instead of "general-bot-9672a8d3"
|
||||
activities = activities.filter((m) => { return (m.from.id === "GeneralBot-Netshoes") && m.type === "message" });
|
||||
// TODO: this.botId instead of "general-bot-9672a8d3"
|
||||
activities = activities.filter((m) => { return (m.from.id === "GeneralBots") && m.type === "message" });
|
||||
|
||||
if (activities.length) {
|
||||
|
||||
|
|
44
package.json
44
package.json
|
@ -38,37 +38,37 @@
|
|||
"botbuilder-choices": "^4.0.0-preview1.2",
|
||||
"botbuilder-dialogs": "^4.0.0-preview1.2",
|
||||
"botbuilder-prompts": "^4.0.0-preview1.2",
|
||||
"botlib": "^0.0.28",
|
||||
"chokidar": "^2.0.3",
|
||||
"csv-parse": "^2.4.0",
|
||||
"dotenv-extended": "^2.0.2",
|
||||
"express": "^4.16.2",
|
||||
"fs-extra": "^6.0.1",
|
||||
"botlib": "^0.0.33",
|
||||
"chokidar": "^2.0.4",
|
||||
"csv-parse": "^3.0.0",
|
||||
"dotenv-extended": "^2.2.0",
|
||||
"express": "^4.16.3",
|
||||
"fs-extra": "^7.0.0",
|
||||
"fs-walk": "^0.0.2",
|
||||
"marked": "^0.3.12",
|
||||
"pragmatismo-io-framework": "^1.0.14",
|
||||
"marked": "^0.5.0",
|
||||
"pragmatismo-io-framework": "^1.0.15",
|
||||
"reflect-metadata": "^0.1.12",
|
||||
"request-promise-native": "^1.0.5",
|
||||
"sequelize": "^4.37.10",
|
||||
"sequelize-typescript": "^0.6.3",
|
||||
"sqlite3": "^4.0.0",
|
||||
"swagger-client": "^2.1.18",
|
||||
"tedious": "^2.1.1",
|
||||
"sequelize": "^4.38.0",
|
||||
"sequelize-typescript": "^0.6.6",
|
||||
"sqlite3": "^4.0.2",
|
||||
"swagger-client": "^3.8.15",
|
||||
"tedious": "^2.6.4",
|
||||
"url-join": "^4.0.0",
|
||||
"wait-until": "^0.0.2",
|
||||
"winston": "^2.4.2"
|
||||
"winston": "^3.0.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@types/chai": "^4.1.3",
|
||||
"@types/mocha": "^5.2.0",
|
||||
"@types/sequelize": "^4.27.20",
|
||||
"@types/chai": "^4.1.4",
|
||||
"@types/mocha": "^5.2.5",
|
||||
"@types/sequelize": "^4.27.25",
|
||||
"@types/url-join": "^0.8.2",
|
||||
"@types/winston": "^2.3.9",
|
||||
"@types/winston": "^2.4.4",
|
||||
"chai": "^4.1.2",
|
||||
"mocha": "^5.2.0",
|
||||
"mocha-typescript": "^1.1.14",
|
||||
"ts-node": "^6.0.5",
|
||||
"typedoc": "^0.11.1",
|
||||
"typescript": "^2.8.3"
|
||||
"mocha-typescript": "^1.1.17",
|
||||
"ts-node": "^7.0.1",
|
||||
"typedoc": "^0.12.0",
|
||||
"typescript": "^3.0.3"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -99,7 +99,7 @@ export class GBServer {
|
|||
|
||||
[GBAdminPackage, GBAnalyticsPackage, GBCorePackage, GBSecurityPackage,
|
||||
GBKBPackage, GBCustomerSatisfactionPackage, GBWhatsappPackage].forEach(e => {
|
||||
logger.trace(`Loading sys package: ${e.name}...`);
|
||||
logger.info(`Loading sys package: ${e.name}...`);
|
||||
let p = Object.create(e.prototype) as IGBPackage;
|
||||
p.loadPackage(core, core.sequelize);
|
||||
});
|
||||
|
|
|
@ -30,55 +30,43 @@
|
|||
| |
|
||||
\*****************************************************************************/
|
||||
|
||||
var winston = require('winston');
|
||||
const { createLogger, format, transports } = require('winston');
|
||||
|
||||
var logger = new (winston.Logger)({
|
||||
const config = {
|
||||
levels: {
|
||||
trace: 0,
|
||||
input: 1,
|
||||
verbose: 2,
|
||||
prompt: 3,
|
||||
debug: 4,
|
||||
info: 5,
|
||||
data: 6,
|
||||
help: 7,
|
||||
warn: 8,
|
||||
error: 9
|
||||
error: 0,
|
||||
debug: 1,
|
||||
warn: 2,
|
||||
data: 3,
|
||||
info: 4,
|
||||
verbose: 5,
|
||||
silly: 6,
|
||||
custom: 7
|
||||
},
|
||||
colors: {
|
||||
trace: 'magenta',
|
||||
input: 'grey',
|
||||
verbose: 'cyan',
|
||||
prompt: 'grey',
|
||||
error: 'red',
|
||||
debug: 'blue',
|
||||
info: 'green',
|
||||
data: 'grey',
|
||||
help: 'cyan',
|
||||
warn: 'yellow',
|
||||
error: 'red'
|
||||
data: 'grey',
|
||||
info: 'green',
|
||||
verbose: 'cyan',
|
||||
silly: 'magenta',
|
||||
custom: 'yellow'
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
logger.add(winston.transports.Console, {
|
||||
label: 'General Bot Server',
|
||||
level: 'error',
|
||||
prettyPrint: true,
|
||||
colorize: true,
|
||||
silent: false,
|
||||
timestamp: false
|
||||
});
|
||||
|
||||
logger.add(winston.transports.File, {
|
||||
label: 'General Bot Server',
|
||||
prettyPrint: true,
|
||||
level: 'error',
|
||||
silent: false,
|
||||
colorize: false,
|
||||
timestamp: true,
|
||||
filename: './gbtrace.log',
|
||||
maxsize: 999999999,
|
||||
maxFiles: 1,
|
||||
json: false
|
||||
const logger = createLogger({
|
||||
format: format.combine(
|
||||
format.colorize(),
|
||||
format.simple(),
|
||||
format.label({ label: 'GeneralBots' }),
|
||||
format.timestamp(),
|
||||
format.printf(nfo => {
|
||||
return `${nfo.timestamp} [${nfo.label}] ${nfo.level}: ${nfo.message}`;
|
||||
})
|
||||
),
|
||||
levels: config.levels,
|
||||
transports: [new transports.Console()]
|
||||
});
|
||||
|
||||
module.exports=logger;
|
|
@ -5,7 +5,6 @@
|
|||
"declaration": false,
|
||||
"emitDecoratorMetadata": true,
|
||||
"experimentalDecorators": true,
|
||||
"keyofStringsOnly": true,
|
||||
"skipLibCheck": true,
|
||||
"mapRoot": "./dist/",
|
||||
"module": "commonjs",
|
||||
|
|
Loading…
Add table
Reference in a new issue