| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 | 
							- 'use strict';
 
- const mongoose = require('mongoose');
 
- let lib = {
 
- 	connection: null,
 
- 	schemas: {},
 
- 	models: {},
 
- 	init: (url, cb) => {
 
- 		lib.connection = mongoose.connect(url).connection;
 
- 		lib.connection.on('error', err => console.error('Database error: ' + err.message));
 
- 		lib.connection.once('open', _ => {
 
- 			lib.schemas = {
 
- 				song: new mongoose.Schema(require(`./schemas/song`)),
 
- 				queueSong: new mongoose.Schema(require(`./schemas/queueSong`)),
 
- 				station: new mongoose.Schema(require(`./schemas/station`)),
 
- 				user: new mongoose.Schema(require(`./schemas/user`)),
 
- 				playlist: new mongoose.Schema(require(`./schemas/playlist`)),
 
- 				news: new mongoose.Schema(require(`./schemas/news`)),
 
- 				report: new mongoose.Schema(require(`./schemas/report`))
 
- 			};
 
- 			lib.schemas.station.path('_id').validate((id) => {
 
- 				return /^[a-z]+$/.test(id);
 
- 			}, 'The id can only have the letters a-z.');
 
- 			lib.models = {
 
- 				song: mongoose.model('song', lib.schemas.song),
 
- 				queueSong: mongoose.model('queueSong', lib.schemas.queueSong),
 
- 				station: mongoose.model('station', lib.schemas.station),
 
- 				user: mongoose.model('user', lib.schemas.user),
 
- 				playlist: mongoose.model('playlist', lib.schemas.playlist),
 
- 				news: mongoose.model('news', lib.schemas.news),
 
- 				report: mongoose.model('report', lib.schemas.report)
 
- 			};
 
- 			cb();
 
- 		});
 
- 	}
 
- };
 
- module.exports = lib;
 
 
  |