2019-10-08 16:36:55 +00:00
|
|
|
const { MongoClient } = require('mongodb'); // eslint-disable-line import/no-extraneous-dependencies
|
2016-06-03 11:36:20 +00:00
|
|
|
const logger = require('./logger');
|
|
|
|
|
|
2018-02-17 17:11:24 +00:00
|
|
|
let dbConnection;
|
2016-06-03 11:36:20 +00:00
|
|
|
|
|
|
|
|
function connectToDb (dbUri) {
|
|
|
|
|
return new Promise((resolve, reject) => {
|
|
|
|
|
MongoClient.connect(dbUri, (err, database) => {
|
|
|
|
|
if (err) {
|
|
|
|
|
logger.error(`Uh oh... Problem connecting to the database at ${dbUri}`);
|
|
|
|
|
return reject(err);
|
|
|
|
|
}
|
|
|
|
|
|
2018-02-17 17:11:24 +00:00
|
|
|
dbConnection = database;
|
2016-06-03 11:36:20 +00:00
|
|
|
|
|
|
|
|
logger.success(`Connected to ${dbUri}`);
|
|
|
|
|
|
2019-10-08 16:36:55 +00:00
|
|
|
return resolve(database);
|
2016-06-03 11:36:20 +00:00
|
|
|
});
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function closeDb () {
|
2018-02-17 17:11:24 +00:00
|
|
|
if (dbConnection) dbConnection.close();
|
2016-06-03 11:36:20 +00:00
|
|
|
|
2016-10-02 14:16:22 +00:00
|
|
|
logger.success('Closed connection to the database');
|
2016-06-03 11:36:20 +00:00
|
|
|
return Promise.resolve();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
module.exports = {
|
|
|
|
|
connectToDb,
|
|
|
|
|
closeDb,
|
2018-02-17 17:11:24 +00:00
|
|
|
};
|