From 9f02ed59a3b33d7a1b8ab52d443be2d5b3b31702 Mon Sep 17 00:00:00 2001 From: Leifer Mendez Date: Sat, 4 Mar 2023 18:27:12 +0100 Subject: [PATCH 1/3] feat(provider): :zap: add `delay` general --- packages/bot/core/core.class.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/bot/core/core.class.js b/packages/bot/core/core.class.js index 8cf2bf5d9..4ad3e70f0 100644 --- a/packages/bot/core/core.class.js +++ b/packages/bot/core/core.class.js @@ -22,7 +22,7 @@ class CoreClass { flowClass databaseClass providerClass - generalArgs = { blackList: [], listEvents: {} } + generalArgs = { blackList: [], listEvents: {}, delay: 0 } constructor(_flow, _database, _provider, _args) { this.flowClass = _flow this.databaseClass = _database @@ -131,7 +131,7 @@ class CoreClass { const queue = [] for (const ctxMessage of messageToSend) { if (endFlowFlag) return - const delayMs = ctxMessage?.options?.delay || 0 + const delayMs = ctxMessage?.options?.delay ?? this.generalArgs.delay ?? 0 if (delayMs) await delay(delayMs) await QueuePrincipal.enqueue(() => this.sendProviderAndSave(numberOrId, ctxMessage).then(() => resolveCbEveryCtx(ctxMessage)) @@ -332,7 +332,7 @@ class CoreClass { sendFlowSimple = async (messageToSend, numberOrId) => { const queue = [] for (const ctxMessage of messageToSend) { - const delayMs = ctxMessage?.options?.delay || 0 + const delayMs = ctxMessage?.options?.delay ?? this.generalArgs.delay ?? 0 if (delayMs) await delay(delayMs) QueuePrincipal.enqueue(() => this.sendProviderAndSave(numberOrId, ctxMessage)) } From d3f86db7df7f6807262cbbf26108ed3f233b239c Mon Sep 17 00:00:00 2001 From: Leifer Mendez Date: Sat, 4 Mar 2023 22:02:18 +0100 Subject: [PATCH 2/3] feat(bot): :sparkles: feat --- packages/bot/core/core.class.js | 9 ++++++--- packages/bot/io/methods/addAction.js | 3 +++ packages/bot/io/methods/addAnswer.js | 2 ++ packages/bot/io/methods/addKeyword.js | 1 + 4 files changed, 12 insertions(+), 3 deletions(-) create mode 100644 packages/bot/io/methods/addAction.js diff --git a/packages/bot/core/core.class.js b/packages/bot/core/core.class.js index 4ad3e70f0..b2d0c9a2f 100644 --- a/packages/bot/core/core.class.js +++ b/packages/bot/core/core.class.js @@ -77,7 +77,6 @@ class CoreClass { let fallBackFlag = false if (this.generalArgs.blackList.includes(from)) return if (!body) return - if (!body.length) return let prevMsg = await this.databaseClass.getPrevByNumber(from) const refToContinue = this.flowClass.findBySerialize(prevMsg?.refSerialize) @@ -302,8 +301,12 @@ class CoreClass { */ sendProviderAndSave = async (numberOrId, ctxMessage) => { const { answer } = ctxMessage - await this.providerClass.sendMessage(numberOrId, answer, ctxMessage) - await this.databaseClass.save({ ...ctxMessage, from: numberOrId }) + + if (answer && answer.length && answer !== '__call_action__') { + await this.providerClass.sendMessage(numberOrId, answer, ctxMessage) + await this.databaseClass.save({ ...ctxMessage, from: numberOrId }) + } + return } diff --git a/packages/bot/io/methods/addAction.js b/packages/bot/io/methods/addAction.js new file mode 100644 index 000000000..46cbc18bf --- /dev/null +++ b/packages/bot/io/methods/addAction.js @@ -0,0 +1,3 @@ +const addAction = () => async () => {} + +module.exports = { addAction } diff --git a/packages/bot/io/methods/addAnswer.js b/packages/bot/io/methods/addAnswer.js index 5236c149b..56e1ed593 100644 --- a/packages/bot/io/methods/addAnswer.js +++ b/packages/bot/io/methods/addAnswer.js @@ -1,5 +1,6 @@ const { flatObject } = require('../../utils/flattener') const { generateRef } = require('../../utils/hash') +const { addAction } = require('./addAction') const { addChild } = require('./addChild') const { toJson } = require('./toJson') /** @@ -98,6 +99,7 @@ const addAnswer = ctx, ref: ctx.ref, addAnswer: addAnswer(ctx), + addAction: (cb = () => null) => addAnswer(ctx)('__call_action__', null, cb), toJson: toJson(ctx), } } diff --git a/packages/bot/io/methods/addKeyword.js b/packages/bot/io/methods/addKeyword.js index 50a5c0c39..e4d545dff 100644 --- a/packages/bot/io/methods/addKeyword.js +++ b/packages/bot/io/methods/addKeyword.js @@ -44,6 +44,7 @@ const addKeyword = (keyword, options) => { ctx, ref: ctx.ref, addAnswer: addAnswer(ctx), + addAction: (cb = () => null) => addAnswer(ctx)('__call_action__', null, cb), toJson: toJson(ctx), } } From 6adbe323de5bfa56565f0b29c21c98dde968a886 Mon Sep 17 00:00:00 2001 From: Leifer Mendez Date: Sat, 4 Mar 2023 22:02:32 +0100 Subject: [PATCH 3/3] feat(bot): :sparkles: `.addAction` feat --- packages/bot/io/methods/addAnswer.js | 1 - 1 file changed, 1 deletion(-) diff --git a/packages/bot/io/methods/addAnswer.js b/packages/bot/io/methods/addAnswer.js index 56e1ed593..74e3d81cf 100644 --- a/packages/bot/io/methods/addAnswer.js +++ b/packages/bot/io/methods/addAnswer.js @@ -1,6 +1,5 @@ const { flatObject } = require('../../utils/flattener') const { generateRef } = require('../../utils/hash') -const { addAction } = require('./addAction') const { addChild } = require('./addChild') const { toJson } = require('./toJson') /**