2018-01-10 15:31:54 +01:00
|
|
|
'use strict';
|
|
|
|
|
2019-06-20 15:45:14 +02:00
|
|
|
module.exports = async ({ connection }) => {
|
2018-09-12 22:03:31 -05:00
|
|
|
const Mongoose = require('mongoose');
|
2018-02-02 18:27:03 +01:00
|
|
|
|
2019-06-20 15:45:14 +02:00
|
|
|
const { username, password, srv } = connection.settings;
|
|
|
|
const { authenticationDatabase, ssl } = connection.options;
|
2018-04-24 16:38:19 +02:00
|
|
|
|
|
|
|
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;
|
2019-06-20 15:45:14 +02:00
|
|
|
connectOptions.dbName = connection.settings.database;
|
|
|
|
|
|
|
|
return Mongoose.connect(
|
|
|
|
`mongodb${srv ? '+srv' : ''}://${connection.settings.host}${
|
|
|
|
!srv ? `:${connection.settings.port}` : ''
|
|
|
|
}/`,
|
|
|
|
connectOptions
|
|
|
|
).then(
|
|
|
|
() => {
|
|
|
|
Mongoose.connection.close();
|
|
|
|
},
|
|
|
|
error => {
|
|
|
|
Mongoose.connection.close();
|
|
|
|
throw error;
|
2018-01-10 15:31:54 +01:00
|
|
|
}
|
2019-06-20 15:45:14 +02:00
|
|
|
);
|
2018-01-10 15:31:54 +01:00
|
|
|
};
|