mirror of
https://github.com/cheveguerra/bot-whatsapp.git
synced 2026-04-21 04:59:15 +00:00
issue
This commit is contained in:
32
packages/core/LIST_EVENTS.md
Normal file
32
packages/core/LIST_EVENTS.md
Normal file
@@ -0,0 +1,32 @@
|
||||
- **require_action**: Indica que accion se necesita por parte del usuario y debe contener `instructions` obligatorio
|
||||
|
||||
```json
|
||||
{
|
||||
"instructions": `Debes escanear el QR Code para iniciar session reivsa qr.svg`,
|
||||
... otros argumentos
|
||||
}
|
||||
```
|
||||
|
||||
- **ready**: Indica que todo los procesos para usar el provider han pasado correctamente. Ejemplo validacion de token credenciales etc
|
||||
|
||||
retorna: `true`
|
||||
|
||||
- **auth_failure**: Indica que un problema ocurrio en el inicio del provider `instructions` obligatorio
|
||||
|
||||
```json
|
||||
{
|
||||
"instructions": `Debes escanear el QR Code para iniciar session reivsa qr.svg`,
|
||||
... otros argumentos
|
||||
}
|
||||
```
|
||||
|
||||
- **message**: Indica que mensaje a entrado se debe contemplar la siguiente estructura
|
||||
|
||||
```json
|
||||
{
|
||||
"from": 'Numero de telefono o id que identifique al usuario',
|
||||
"body": 'Mensaje en string que esta entrando',
|
||||
"hasMedia": 'boolean true o false indicando is tiene un archivo multimedia',
|
||||
... otros argumentos
|
||||
}
|
||||
```
|
||||
@@ -1,3 +1,5 @@
|
||||
const { printer } = require('../utils/interactive')
|
||||
|
||||
/**
|
||||
* [ ] Escuchar eventos del provider asegurarte que los provider emitan eventos
|
||||
* [ ] Guardar historial en db
|
||||
@@ -13,32 +15,45 @@ class BotClass {
|
||||
this.databaseClass = _database
|
||||
this.providerClass = _provider
|
||||
|
||||
this.providerClass.on('require_action', (a) => console.log('here??', a))
|
||||
this.providerClass.on('ready', (a) => console.log('ready??', a))
|
||||
this.providerClass.on('auth_failure', (a) =>
|
||||
console.log('auth_failure??', a)
|
||||
)
|
||||
this.providerClass.on('authenticated', (a) =>
|
||||
console.log('authenticated??', a)
|
||||
)
|
||||
for (const { event, func } of this.listenerBusEvents()) {
|
||||
this.providerClass.on(event, func)
|
||||
}
|
||||
|
||||
this.providerClass.on('message', (message) =>
|
||||
console.log('message?', message)
|
||||
)
|
||||
}
|
||||
|
||||
listenerBusEvents = () => [
|
||||
{
|
||||
event: 'require_action',
|
||||
func: ({ instructions }) =>
|
||||
printer(instructions, '⚡⚡ ACCION REQUERIDA ⚡⚡'),
|
||||
},
|
||||
{
|
||||
event: 'ready',
|
||||
func: () => printer('Provider conectado y listo'),
|
||||
},
|
||||
{
|
||||
event: 'auth_failure',
|
||||
func: ({ instructions }) =>
|
||||
printer(instructions, '⚡⚡ ERROR AUTH ⚡⚡'),
|
||||
},
|
||||
|
||||
{
|
||||
event: 'message',
|
||||
func: (msg) => this.handleMsg(msg),
|
||||
},
|
||||
]
|
||||
|
||||
/**
|
||||
* @private
|
||||
* @param {*} ctxMessage
|
||||
*/
|
||||
handleOnMessage = (ctxMessage) => {
|
||||
this.databaseClass.saveLog(ctxMessage)
|
||||
this.continue(ctxMessage)
|
||||
}
|
||||
|
||||
handleEvents = (eventName) => {
|
||||
if (eventName === 'message') return
|
||||
if (eventName === 'auth_success') return
|
||||
if (eventName === 'auth_error') return
|
||||
handleMsg = ({ body }) => {
|
||||
this.databaseClass.saveLog(body)
|
||||
const a = this.flowClass.find(body)
|
||||
console.log(a)
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -17,5 +17,7 @@
|
||||
"keywords": [],
|
||||
"author": "",
|
||||
"license": "ISC",
|
||||
"devDependencies": {}
|
||||
"devDependencies": {
|
||||
"kleur": "^4.1.5"
|
||||
}
|
||||
}
|
||||
|
||||
10
packages/core/utils/interactive.js
Normal file
10
packages/core/utils/interactive.js
Normal file
@@ -0,0 +1,10 @@
|
||||
const { yellow, red, bgRed } = require('kleur')
|
||||
|
||||
const printer = (message, title) => {
|
||||
console.clear()
|
||||
if (title) console.log(bgRed(`${title}`))
|
||||
console.log(yellow(Array.isArray(message) ? message.join('\n') : message))
|
||||
console.log(``)
|
||||
}
|
||||
|
||||
module.exports = { printer }
|
||||
Reference in New Issue
Block a user