Source: data/mongoose.js

import MessageRequestSchema from './schema/message-request';
import Winston from '../logging/app.logger';
import mongoose from 'mongoose';

import { prettyJson } from '../logging/format';
import UserSchema from './schema/user';

/**
 * This function creates a connection to a MongoDB and loads the schemas for mongoose.
 * @returns {mongoose.Connection}
 */
async function dbconnection(): mongoose.Connection {
    try {
        await mongoose.connect(process.env.DB_CONNECTION_STRING, { useNewUrlParser: true });
        Winston.info('Connected to mongo.');
        mongoose.model('MessageRequest', MessageRequestSchema);
        mongoose.model('User', UserSchema);
    } catch (exception) {
        exception |> prettyJson |> Winston.error;
    }
}

export default dbconnection;