| 
									
										
										
										
											2018-01-10 15:31:54 +01:00
										 |  |  | 'use strict'; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | // Node.js core.
 | 
					
						
							|  |  |  | const execSync = require('child_process').execSync; | 
					
						
							| 
									
										
										
										
											2018-01-11 13:22:49 +01:00
										 |  |  | const path = require('path'); | 
					
						
							| 
									
										
										
										
											2018-01-10 15:31:54 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | // Logger.
 | 
					
						
							|  |  |  | const logger = require('strapi-utils').logger; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | module.exports = (scope, success, error) => { | 
					
						
							| 
									
										
										
										
											2018-02-12 19:14:36 +01:00
										 |  |  |   const Mongoose = require(path.resolve(`${scope.tmpPath}/node_modules/mongoose`)); | 
					
						
							| 
									
										
										
										
											2018-02-02 18:27:03 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-03-08 15:51:03 +01:00
										 |  |  |   const { username, password, authenticationDatabase, ssl } = scope.database.settings | 
					
						
							| 
									
										
										
										
											2018-01-18 23:37:16 +01:00
										 |  |  |   const connectOptions = {} | 
					
						
							| 
									
										
										
										
											2018-01-23 07:26:00 +01:00
										 |  |  |   if (username) { | 
					
						
							|  |  |  |     connectOptions.user = username | 
					
						
							|  |  |  |     if (password) { | 
					
						
							|  |  |  |       connectOptions.pass = password | 
					
						
							|  |  |  |     } | 
					
						
							| 
									
										
										
										
											2018-01-18 23:37:16 +01:00
										 |  |  |   } | 
					
						
							| 
									
										
										
										
											2018-03-08 15:51:03 +01:00
										 |  |  |   if (authenticationDatabase) { | 
					
						
							|  |  |  |     connectOptions.authSource = authenticationDatabase; | 
					
						
							|  |  |  |   } | 
					
						
							| 
									
										
										
										
											2018-03-04 23:02:29 +08:00
										 |  |  |   connectOptions.ssl = ssl ? true : false | 
					
						
							| 
									
										
										
										
											2018-01-18 23:37:16 +01:00
										 |  |  |   Mongoose.connect(`mongodb://${scope.database.settings.host}:${scope.database.settings.port}/${scope.database.settings.database}`, connectOptions, function (err) { | 
					
						
							| 
									
										
										
										
											2018-01-10 15:31:54 +01:00
										 |  |  |     if (err) { | 
					
						
							| 
									
										
										
										
											2018-01-10 18:08:43 +01:00
										 |  |  |       logger.warn('Database connection has failed! Make sure your database is running.'); | 
					
						
							| 
									
										
										
										
											2018-01-10 15:31:54 +01:00
										 |  |  |       return error(); | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-01-10 18:08:43 +01:00
										 |  |  |     logger.info('The app has been connected to the database successfully!'); | 
					
						
							| 
									
										
										
										
											2018-01-10 15:31:54 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     Mongoose.connection.close(); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-02-12 19:14:36 +01:00
										 |  |  |     execSync(`rm -r ${scope.tmpPath}`); | 
					
						
							| 
									
										
										
										
											2018-01-10 15:31:54 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     logger.info('Copying the dashboard...'); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     success(); | 
					
						
							|  |  |  |   }); | 
					
						
							|  |  |  | }; |