2018-01-10 15:31:54 +01:00
|
|
|
'use strict';
|
|
|
|
|
2018-09-12 22:21:26 -05:00
|
|
|
// Public node modules
|
|
|
|
const rimraf = require('rimraf');
|
|
|
|
|
2018-01-10 15:31:54 +01:00
|
|
|
module.exports = (scope, success, error) => {
|
2018-09-12 22:03:31 -05:00
|
|
|
const Mongoose = require('mongoose');
|
2018-02-02 18:27:03 +01:00
|
|
|
|
2018-08-13 05:43:42 +09:00
|
|
|
const { username, password, srv } = scope.database.settings;
|
2018-04-24 16:38:19 +02:00
|
|
|
const { authenticationDatabase, ssl } = scope.database.options;
|
|
|
|
|
|
|
|
const connectOptions = {};
|
|
|
|
|
2018-01-23 07:26:00 +01:00
|
|
|
if (username) {
|
2018-04-24 16:38:19 +02:00
|
|
|
connectOptions.user = username;
|
|
|
|
|
2018-01-23 07:26:00 +01:00
|
|
|
if (password) {
|
2018-04-24 16:38:19 +02:00
|
|
|
connectOptions.pass = password;
|
2018-01-23 07:26:00 +01:00
|
|
|
}
|
2018-01-18 23:37:16 +01:00
|
|
|
}
|
2018-04-24 16:38:19 +02:00
|
|
|
|
2018-03-08 15:51:03 +01:00
|
|
|
if (authenticationDatabase) {
|
|
|
|
connectOptions.authSource = authenticationDatabase;
|
|
|
|
}
|
2018-04-24 16:38:19 +02:00
|
|
|
|
|
|
|
connectOptions.ssl = ssl ? true : false;
|
2018-07-08 12:40:28 -04:00
|
|
|
connectOptions.useNewUrlParser = true;
|
2018-08-13 05:43:42 +09:00
|
|
|
connectOptions.dbName = scope.database.settings.database;
|
2018-04-24 16:38:19 +02:00
|
|
|
|
2018-08-27 14:01:56 +02:00
|
|
|
Mongoose.connect(`mongodb${srv ? '+srv' : ''}://${scope.database.settings.host}${!srv ? `:${scope.database.settings.port}` : ''}/`, connectOptions, function (err) {
|
2018-01-10 15:31:54 +01:00
|
|
|
if (err) {
|
2018-12-28 16:51:02 +01:00
|
|
|
console.log('⚠️ Database connection has failed! Make sure your database is running.');
|
|
|
|
|
|
|
|
if (scope.debug) {
|
|
|
|
console.log('🐛 Full error log:');
|
|
|
|
console.log(err);
|
|
|
|
}
|
|
|
|
|
2018-01-10 15:31:54 +01:00
|
|
|
return error();
|
|
|
|
}
|
|
|
|
|
|
|
|
Mongoose.connection.close();
|
|
|
|
|
2018-09-12 23:06:53 -05:00
|
|
|
rimraf(scope.tmpPath, (err) => {
|
|
|
|
if (err) {
|
|
|
|
console.log(`Error removing connection test folder: ${scope.tmpPath}`);
|
|
|
|
}
|
|
|
|
success();
|
|
|
|
});
|
2018-01-10 15:31:54 +01:00
|
|
|
});
|
|
|
|
};
|