UUID memory without relation UUID DB

This commit is contained in:
Leifer Mendez
2022-11-16 23:16:54 +01:00
parent ce8e7be9d7
commit 76968ded02
6 changed files with 39 additions and 11 deletions

View File

@@ -1,3 +1,4 @@
const { validateCtx } = require('../io/methods')
const { printer } = require('../utils/interactive') const { printer } = require('../utils/interactive')
/** /**
@@ -46,9 +47,9 @@ class CoreClass {
* @private * @private
* @param {*} ctxMessage * @param {*} ctxMessage
*/ */
handleMsg = ({ body, from }) => { handleMsg = async ({ body, from }) => {
let msgToSend = [] let msgToSend = []
const prevMsg = [...this.databaseClass.listHistory].pop() const prevMsg = await this.databaseClass.getPrevByNumber(from)
if (prevMsg?.ref && prevMsg?.options?.capture) { if (prevMsg?.ref && prevMsg?.options?.capture) {
msgToSend = this.flowClass.find(prevMsg.ref, true) || [] msgToSend = this.flowClass.find(prevMsg.ref, true) || []
@@ -62,7 +63,7 @@ class CoreClass {
const { answer } = ctxMessage const { answer } = ctxMessage
return Promise.all([ return Promise.all([
this.providerClass.sendMessage(numberOrId, answer), this.providerClass.sendMessage(numberOrId, answer),
this.databaseClass.save(ctxMessage), this.databaseClass.save({ ...ctxMessage, from: numberOrId }),
]) ])
} }

View File

@@ -1,5 +1,6 @@
const { addAnswer } = require('./addAnswer') const { addAnswer } = require('./addAnswer')
const { addKeyword } = require('./addKeyword') const { addKeyword } = require('./addKeyword')
const { validateCtx } = require('./validateCtx')
const { toJson } = require('./toJson') const { toJson } = require('./toJson')
module.exports = { addAnswer, addKeyword, toJson } module.exports = { addAnswer, addKeyword, validateCtx, toJson }

View File

@@ -0,0 +1,18 @@
const { generateRef } = require('../../utils/hash')
/**
*
* @param answer string
* @param options {media:string, buttons:[], capture:true default false}
* @returns
*/
const validateCtx = ({ body, from }) => {
return {
ref: generateRef(),
keyword: null,
answer: body,
options: {},
from,
}
}
module.exports = { validateCtx }

View File

@@ -9,7 +9,6 @@ class MongoAdapter {
listHistory = [] listHistory = []
constructor() { constructor() {
console.log({ DB_URI })
this.init().then() this.init().then()
} }
@@ -17,7 +16,7 @@ class MongoAdapter {
try { try {
const client = new MongoClient(DB_URI, {}) const client = new MongoClient(DB_URI, {})
await client.connect() await client.connect()
console.log('Connected successfully to server') console.log('🆗 Conexión Correcta DB')
const db = client.db(DB_NAME) const db = client.db(DB_NAME)
this.db = db this.db = db
return true return true
@@ -27,6 +26,16 @@ class MongoAdapter {
} }
} }
getPrevByNumber = async (from) => {
const result = await this.db
.collection('history')
.find({ from })
.sort({ _id: -1 })
.limit(1)
.toArray()
return result[0]
}
save = async (ctx) => { save = async (ctx) => {
await this.db.collection('history').insert(ctx) await this.db.collection('history').insert(ctx)
console.log('Guardando DB...', ctx) console.log('Guardando DB...', ctx)

View File

@@ -2,13 +2,12 @@ const { Client, LocalAuth } = require('whatsapp-web.js')
const { ProviderClass } = require('@bot-whatsapp/bot') const { ProviderClass } = require('@bot-whatsapp/bot')
const { Console } = require('console') const { Console } = require('console')
const { createWriteStream } = require('fs') const { createWriteStream } = require('fs')
const { cleanNumber, generateImage, isValidNumber } = require('./utils')
const logger = new Console({ const logger = new Console({
stdout: createWriteStream('./log'), stdout: createWriteStream('./log'),
}) })
const { cleanNumber, generateImage, isValidNumber } = require('./utils')
class WebWhatsappProvider extends ProviderClass { class WebWhatsappProvider extends ProviderClass {
vendor vendor
constructor() { constructor() {
@@ -75,7 +74,7 @@ class WebWhatsappProvider extends ProviderClass {
if (!isValidNumber(payload.from)) { if (!isValidNumber(payload.from)) {
return return
} }
payload.from = cleanNumber(payload.from, true)
this.emit('message', payload) this.emit('message', payload)
}, },
}, },

View File

@@ -1,9 +1,9 @@
const { createWriteStream } = require('fs') const { createWriteStream } = require('fs')
const qr = require('qr-image') const qr = require('qr-image')
const cleanNumber = (number) => { const cleanNumber = (number, full = false) => {
number = number.replace('@c.us', '') number = number.replace('@c.us', '')
number = `${number}@c.us` number = !full ? `${number}@c.us` : `${number}`
return number return number
} }