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')
/**
@@ -46,9 +47,9 @@ class CoreClass {
* @private
* @param {*} ctxMessage
*/
handleMsg = ({ body, from }) => {
handleMsg = async ({ body, from }) => {
let msgToSend = []
const prevMsg = [...this.databaseClass.listHistory].pop()
const prevMsg = await this.databaseClass.getPrevByNumber(from)
if (prevMsg?.ref && prevMsg?.options?.capture) {
msgToSend = this.flowClass.find(prevMsg.ref, true) || []
@@ -62,7 +63,7 @@ class CoreClass {
const { answer } = ctxMessage
return Promise.all([
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 { addKeyword } = require('./addKeyword')
const { validateCtx } = require('./validateCtx')
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 = []
constructor() {
console.log({ DB_URI })
this.init().then()
}
@@ -17,7 +16,7 @@ class MongoAdapter {
try {
const client = new MongoClient(DB_URI, {})
await client.connect()
console.log('Connected successfully to server')
console.log('🆗 Conexión Correcta DB')
const db = client.db(DB_NAME)
this.db = db
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) => {
await this.db.collection('history').insert(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 { Console } = require('console')
const { createWriteStream } = require('fs')
const { cleanNumber, generateImage, isValidNumber } = require('./utils')
const logger = new Console({
stdout: createWriteStream('./log'),
})
const { cleanNumber, generateImage, isValidNumber } = require('./utils')
class WebWhatsappProvider extends ProviderClass {
vendor
constructor() {
@@ -75,7 +74,7 @@ class WebWhatsappProvider extends ProviderClass {
if (!isValidNumber(payload.from)) {
return
}
payload.from = cleanNumber(payload.from, true)
this.emit('message', payload)
},
},

View File

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