| 
									
										
										
										
											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
										 |  |  | }; |