diff options
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/record_fetcher.js | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/lib/record_fetcher.js b/lib/record_fetcher.js new file mode 100644 index 0000000..a506fe7 --- /dev/null +++ b/lib/record_fetcher.js @@ -0,0 +1,45 @@ +'use strict'; + +const Config = require('../config/config'); +const Mysql = require('mysql2'); + +const internals = {}; + +module.exports = internals.Record = class { + + constructor() { + + this.connection = Mysql.createConnection(Config.mysql); + } + + fetch() { + + return new Promise((resolve, reject) => { + this.connection.query(`SELECT * FROM ${Config.mysql.tableName} ORDER BY RAND() LIMIT 1`, (err, results) => { + + if (err) { + console.error('Error while fetching row'); + console.error(err.message); + return reject(err); + } + + if (results.length === 0) { + const error = new Error('No rows found.'); + console.error('Error while fetching row'); + console.error(error.message); + return reject(err); + } + + const row = results[0]; + + return resolve({ + looks: row.l, + good: row.g, + to: row.t, + me: row.m, + emoji: row.emoji + }); + }); + }); + } +}; |