Skip to content

Commit

Permalink
feat(adapter): added adapter mysql
Browse files Browse the repository at this point in the history
  • Loading branch information
vicente1992 committed Dec 2, 2022
1 parent 7d41699 commit 717a7dc
Show file tree
Hide file tree
Showing 4 changed files with 613 additions and 418 deletions.
6 changes: 4 additions & 2 deletions packages/database/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -9,10 +9,12 @@
"license": "ISC",
"dependencies": {
"dotenv": "^16.0.3",
"mongodb": "^4.11.0"
"mongodb": "^4.11.0",
"mysql2": "^2.3.3"
},
"exports": {
"./mock": "./lib/mock/index.cjs",
"./mongo": "./lib/mongo/index.cjs"
"./mongo": "./lib/mongo/index.cjs",
"./mysql": "./lib/mysql/index.cjs"
}
}
9 changes: 9 additions & 0 deletions packages/database/rollup-database.config.js
Original file line number Diff line number Diff line change
Expand Up @@ -21,4 +21,13 @@ module.exports = [
},
plugins: [commonjs()],
},
{
input: join(__dirname, 'src', 'mysql', 'index.js'),
output: {
banner: banner['banner.output'].join(''),
file: join(__dirname, 'lib', 'mysql', 'index.cjs'),
format: 'cjs',
},
plugins: [commonjs()],
},
]
76 changes: 76 additions & 0 deletions packages/database/src/mysql/index.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
require('dotenv').config()
const mysql = require('mysql2')

const DB_NAME = process.env.DB_NAME || 'db_bot'
const DB_HOST = process.env.DB_HOST || 'localhost'
const DB_USER = process.env.DB_USER || 'root'

class MyslAdapter {
db
listHistory = []

constructor() {
this.init().then()
}

async init() {
this.db = mysql.createConnection({
host: DB_HOST,
user: DB_USER,
database: DB_NAME,
})

await this.db.connect((error) => {
if (!error) {
console.log(`Solicitud de conexión a base de datos exitosa`)
}

if (error) {
console.log(`Solicitud de conexión fallida ${error.stack}`)
}
})
}

getPrevByNumber = (from) =>
new Promise((resolve, reject) => {
const sql = `SELECT * FROM history WHERE phone=${from} ORDER BY id DESC`
this.db.query(sql, (error, rows) => {
if (error) {
reject(error)
}

if (rows.length) {
const [row] = rows
row.options = JSON.parse(row.options)
resolve(row)
}

if (!rows.length) {
resolve(null)
}
})
})

save = (ctx) => {
const values = [
[
ctx.ref,
ctx.keyword,
ctx.answer,
ctx.refSerialize,
ctx.from,
JSON.stringify(ctx.options),
],
]
const sql =
'INSERT INTO history (ref, keyword, answer, refSerialize, phone, options ) values ?'

this.db.query(sql, [values], (err) => {
if (err) throw err
console.log('Guardado en DB...', values)
})
this.listHistory.push(ctx)
}
}

module.exports = MyslAdapter
Loading

0 comments on commit 717a7dc

Please sign in to comment.