Merge pull request #381 from codigoencasa/feat/ci-02

Feat/ci 02
This commit is contained in:
Leifer Mendez
2023-01-06 16:04:29 +01:00
committed by GitHub

View File

@@ -18,6 +18,7 @@ class CoreClass {
flowClass
databaseClass
providerClass
listCallbacks = []
constructor(_flow, _database, _provider) {
this.flowClass = _flow
this.databaseClass = _database
@@ -105,6 +106,7 @@ class CoreClass {
from,
keyword: null,
index,
options: prevMsg?.options ?? {},
})
)
.slice(0, optListMsg.limit)
@@ -114,18 +116,24 @@ class CoreClass {
}
// 📄 Se encarga de revisar si el contexto del mensaje tiene callback y ejecutarlo
const cbEveryCtx = (inRef) => {
this.flowClass.allCallbacks[inRef](messageCtxInComming, {
fallBack,
flowDynamic,
})
}
const cbEveryCtx =
(inRef, _injectMessageCtx, _injectfallBack, _injectflowDynamic) =>
() => {
this.flowClass.allCallbacks[inRef](_injectMessageCtx, {
fallBack: _injectfallBack,
flowDynamic: _injectflowDynamic,
})
}
// 📄 [options: callback]: Si se tiene un callback se ejecuta
if (!fallBackFlag) {
if (refToContinue?.options?.capture) cbEveryCtx(refToContinue?.ref)
for (const ite of this.flowClass.find(body)) {
if (!ite?.options?.capture) cbEveryCtx(ite?.ref)
const callAllCb = (_msgToList = []) => {
for (const ite of _msgToList) {
this.listCallbacks[ite?.ref] = cbEveryCtx(
ite?.ref,
messageCtxInComming,
fallBack,
flowDynamic
)
}
}
@@ -138,10 +146,7 @@ class CoreClass {
msgToSend = this.flowClass.find(body, false, flowStandalone) || []
for (const ite of msgToSend) {
cbEveryCtx(ite?.ref)
}
callAllCb(msgToSend)
this.sendFlow(msgToSend, from)
return
}
@@ -153,12 +158,14 @@ class CoreClass {
if (['string', 'boolean'].includes(typeCapture) && valueCapture) {
msgToSend = this.flowClass.find(refToContinue?.ref, true) || []
callAllCb(msgToSend)
this.sendFlow(msgToSend, from)
return
}
}
msgToSend = this.flowClass.find(body) || []
callAllCb(msgToSend)
this.sendFlow(msgToSend, from)
}
@@ -169,10 +176,19 @@ class CoreClass {
* @returns
*/
sendProviderAndSave = (numberOrId, ctxMessage) => {
const executeCb = (ref) => {
try {
return this.listCallbacks[ref]()
} catch (e) {
return Promise.resolve()
}
}
const { answer } = ctxMessage
return Promise.all([
this.providerClass.sendMessage(numberOrId, answer, ctxMessage),
this.databaseClass.save({ ...ctxMessage, from: numberOrId }),
executeCb(ctxMessage?.ref),
])
}