mirror of
https://github.com/cheveguerra/bot-whatsapp.git
synced 2026-04-17 19:26:23 +00:00
Save messages in Mysql or Json
This commit is contained in:
@@ -1,4 +1,5 @@
|
||||
const { getData, getReply } = require('./mysql')
|
||||
const { getData, getReply, saveMessageMysql } = require('./mysql')
|
||||
const { saveMessageJson } = require('./jsonDb')
|
||||
const { getDataIa } = require('./diaglogflow')
|
||||
const stepsInitial = require('../flow/initial.json')
|
||||
const stepsReponse = require('../flow/response.json')
|
||||
@@ -64,4 +65,24 @@ const getIA = (message) => new Promise((resolve, reject) => {
|
||||
}
|
||||
})
|
||||
|
||||
module.exports = { get, reply, getIA }
|
||||
const saveMessage = ( message, date, trigger, number ) => new Promise( async (resolve, reject) => {
|
||||
switch ( process.env.DATABASEMESSAGES ) {
|
||||
case 'mysql':
|
||||
resolve( await saveMessageMysql( message, date, trigger, number ) )
|
||||
break;
|
||||
case 'json':
|
||||
resolve( await saveMessageJson( message, date, trigger, number ) )
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
// if (process.env.DATABASE === 'dialogflow') {
|
||||
// let resData = { replyMessage: '', media: null, trigger: null }
|
||||
// getDataIa(message,(dt) => {
|
||||
// resData = { ...resData, ...dt }
|
||||
// resolve(resData)
|
||||
// })
|
||||
// }
|
||||
})
|
||||
|
||||
module.exports = { get, reply, getIA, saveMessage }
|
||||
20
adapter/jsonDb.js
Normal file
20
adapter/jsonDb.js
Normal file
@@ -0,0 +1,20 @@
|
||||
const Path = require('path')
|
||||
const StormDB = require("stormdb");
|
||||
|
||||
const saveMessageJson = (message, date, trigger, number) => new Promise( async(resolve,reject) =>{
|
||||
try {
|
||||
const engine = new StormDB.localFileEngine( Path.join(__dirname, `/../chats/${number}.json`) );
|
||||
const db = new StormDB(engine);
|
||||
// set default db value if db is empty
|
||||
db.default({ messages: [] });
|
||||
// add new users entry
|
||||
db.get("messages").push({ message, date, trigger });
|
||||
db.save();
|
||||
resolve('Saved')
|
||||
} catch (error) {
|
||||
console.log(error)
|
||||
reject(error)
|
||||
}
|
||||
})
|
||||
|
||||
module.exports = { saveMessageJson }
|
||||
@@ -25,4 +25,47 @@ getReply = (option_key = '', callback) => connection.query(
|
||||
callback(value)
|
||||
});
|
||||
|
||||
module.exports = {getData, getReply}
|
||||
getMessages = ( number ) => new Promise((resolve,reejct) => {
|
||||
try {
|
||||
connection.query(
|
||||
`SELECT * FROM ${DATABASE_NAME}.response WHERE number = '${number}'`, (error, results) => {
|
||||
if(error) {
|
||||
console.log(error)
|
||||
}
|
||||
const [response] = results;
|
||||
console.log(response)
|
||||
const value = {
|
||||
replyMessage:response?.replyMessage || '',
|
||||
trigger:response?.trigger || '',
|
||||
media:response?.media || ''
|
||||
}
|
||||
resolve(value)
|
||||
})
|
||||
} catch (error) {
|
||||
|
||||
}
|
||||
})
|
||||
|
||||
saveMessageMysql = ( message, date, trigger, number ) => new Promise((resolve,reejct) => {
|
||||
try {
|
||||
connection.query(
|
||||
`INSERT INTO ${DATABASE_NAME}.messages `+"( `message`, `date`, `trigger`, `number`)"+` VALUES ('${message}','${date}','${trigger}', '${number}')` , (error, results) => {
|
||||
if(error) {
|
||||
if( error.code === 'ER_NO_SUCH_TABLE' ){
|
||||
connection.query( `CREATE TABLE ${DATABASE_NAME}.messages `+"( `date` DATE NOT NULL , `message` VARCHAR(450) NOT NULL , `trigger` VARCHAR(450) NOT NULL , `number` VARCHAR(50) NOT NULL ) ENGINE = InnoDB", async (error, results) => {
|
||||
setTimeout( async () => {
|
||||
return resolve( await this.saveMessageMysql( message, date, trigger, number ) )
|
||||
}, 150)
|
||||
})
|
||||
}
|
||||
}
|
||||
console.log('Saved')
|
||||
console.log( results )
|
||||
resolve(results)
|
||||
})
|
||||
} catch (error) {
|
||||
|
||||
}
|
||||
})
|
||||
|
||||
module.exports = {getData, getReply, saveMessageMysql}
|
||||
Reference in New Issue
Block a user