From ead516a9d74f346c4556c7eaab7014f95486f29e Mon Sep 17 00:00:00 2001 From: Ben Beltran Date: Mon, 28 Nov 2016 02:28:17 -0600 Subject: LGTM-2 Read from database Squashed commit of the following: commit a2a2b553f69a66f1825347abde4f0028773bdbdb Author: Ben Beltran Date: Mon Nov 28 02:27:19 2016 -0600 Fetch random record in record_fetcher commit 6b98202fc8ea9c5811134cad592f11b6b89d008a Author: Ben Beltran Date: Mon Nov 28 02:27:08 2016 -0600 Add some instructions to the readme commit f5efb2b5de23844e6317a6f636abb75955e60c40 Author: Ben Beltran Date: Mon Nov 28 02:26:57 2016 -0600 Add DB setup script commit d6d8813ef55bb1297089c9dbb87a9ab86e6c5ba2 Author: Ben Beltran Date: Mon Nov 28 02:26:34 2016 -0600 Add dotenv to the configs commit 649f66982d2152d36a782577043505835f235987 Author: Ben Beltran Date: Mon Nov 28 01:29:49 2016 -0600 Use a template instead of static html index --- lib/record_fetcher.js | 45 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 lib/record_fetcher.js (limited to 'lib') 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 + }); + }); + }); + } +}; -- cgit