]> git.r.bdr.sh - rbdr/lgtm/commitdiff
Fetch random record in record_fetcher
authorBen Beltran <redacted>
Mon, 28 Nov 2016 08:27:19 +0000 (02:27 -0600)
committerBen Beltran <redacted>
Mon, 28 Nov 2016 08:27:19 +0000 (02:27 -0600)
lib/record_fetcher.js

index 5bc4caf6293ff5fdc0983e8c5c4367238f8e500f..a506fe7a9d1a84fa3a0ee5d10d59c464fcd72f97 100644 (file)
@@ -1,16 +1,45 @@
 'use strict';
 
 'use strict';
 
+const Config = require('../config/config');
+const Mysql = require('mysql2');
+
 const internals = {};
 
 module.exports = internals.Record = class {
 const internals = {};
 
 module.exports = internals.Record = class {
+
+  constructor() {
+
+    this.connection = Mysql.createConnection(Config.mysql);
+  }
+
   fetch() {
 
   fetch() {
 
-    return Promise.resolve({
-      looks: 'Looks',
-      good: 'Good',
-      to: 'To',
-      me: 'Me',
-      emoji: '👍'
+    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
+        });
+      });
     });
   }
 };
     });
   }
 };