| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970 | 
							- 'use strict'
 
- /* global ROOTPATH, appconfig, winston */
 
- const modb = require('mongoose')
 
- const fs = require('fs')
 
- const path = require('path')
 
- const _ = require('lodash')
 
- /**
 
-  * MongoDB module
 
-  *
 
-  * @return     {Object}  MongoDB wrapper instance
 
-  */
 
- module.exports = {
 
-   /**
 
-    * Initialize DB
 
-    *
 
-    * @return     {Object}  DB instance
 
-    */
 
-   init () {
 
-     let self = this
 
-     global.Mongoose = modb
 
-     let dbModelsPath = path.resolve(ROOTPATH, 'models')
 
-     modb.Promise = require('bluebird')
 
-     // Event handlers
 
-     modb.connection.on('error', err => {
 
-       winston.error('Failed to connect to MongoDB instance.')
 
-       return err
 
-     })
 
-     modb.connection.once('open', function () {
 
-       winston.log('Connected to MongoDB instance.')
 
-     })
 
-     // Store connection handle
 
-     self.connection = modb.connection
 
-     self.ObjectId = modb.Types.ObjectId
 
-     // Load DB Models
 
-     fs
 
-     .readdirSync(dbModelsPath)
 
-     .filter(function (file) {
 
-       return (file.indexOf('.') !== 0)
 
-     })
 
-     .forEach(function (file) {
 
-       let modelName = _.upperFirst(_.camelCase(_.split(file, '.')[0]))
 
-       self[modelName] = require(path.join(dbModelsPath, file))
 
-     })
 
-     // Using ENV variable?
 
-     if (_.startsWith(appconfig.db, '$')) {
 
-       appconfig.db = process.env[appconfig.db.slice(1)]
 
-     }
 
-     // Connect
 
-     self.onReady = modb.connect(appconfig.db)
 
-     return self
 
-   }
 
- }
 
 
  |