Finishing merge on v4 branch.

This commit is contained in:
Rodrigo Rodriguez 2018-09-01 13:51:58 -03:00
parent 3f9b289499
commit 2584717ae8
15 changed files with 96 additions and 111 deletions

View file

@ -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;

View file

@ -85,7 +85,7 @@ export class GBConfigService {
break;
default:
logger.trace(
logger.info(
`Guaribas General Error: Invalid key on .env file: '${key}'`
);
break;

View file

@ -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 });

View file

@ -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}`);
});
}
}

View file

@ -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);
}
);
}

View file

@ -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);
});

View file

@ -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();
});

View file

@ -75,7 +75,7 @@ export class QualityDialog extends IGBDialog {
user.lastQuestion,
user.lastQuestionId,
(data, err) => {
logger.trace("QuestionAlternate inserted.");
logger.info("QuestionAlternate inserted.");
}
);

View file

@ -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;
// }

View file

@ -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")
);

View file

@ -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) {

View file

@ -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"
}
}

View file

@ -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);
});

View file

@ -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;

View file

@ -5,7 +5,6 @@
"declaration": false,
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"keyofStringsOnly": true,
"skipLibCheck": true,
"mapRoot": "./dist/",
"module": "commonjs",